When while saving nodes do I have old and new vid available at once?
You simply can add a custom submit callback to the node form.

/**
 * Implements hook_form_alter().
 */
function MYMODULE_form_alter(&amp;$form, &amp;$form_state, $form_id) {

  $node_forms = [
    'article_node_form',
  ];

  if (in_array($form_id, $node_forms)) {

    // Add a custom submit callback.
    $form['actions']['submit']['#submit'][] = '_MYMODULE_postsave';
  }
}


There you can access the original vid from the $form_state array. And when you load the freshly saved node you'll have the new vid available.

/**
 * Custom submit callback.
 */
function _MYMODULE_postsave($form, &amp;$form_state) {

  $old_vid = $form_state['values']['vid'];
  $nid = $form_state['values']['nid'];
  $node = node_load($nid);
  $new_vid = $node-&gt;vid;

  // Voilà!
  dpm($old_vid, 'OLD_VID');
  dpm($new_vid, 'NEW_VID');

  // Do your stuff here
}


For reference: https://drupal.stackexchange.com/a/221041/15055