TFS Integration Platform – Manually (Proactively) copying files: Questions & Answers 14

Two kind-of questions recently bubbled up on the radar:

  1. Should we manually copy (migrate) files from source to target, to reduce the work that the TFS Integration Platform needs to do? In other words, does it help to be pro-active?
    • No, because this manual action will introduce a “VC content conflict type” for every file that was migrated. While the conflicts could be resolved with the new conflict resolution administration application, but introduces major maintenance effort and cost.
    • The recommended approach is to configure the TFS Integration Platform to perform a snapshot migration, which ensures that the relationship between source and target are created and maintained by the tool.
      Lime Green Man Using A Shovel To Drill Oil Out Of Planet Earth Clipart Illustration
  2. So, if we have done the manual migrate, how do we reset the target TFS environment and avoid further conflicts?
    • Deleting the files and workspaces from the target and resetting the migration database will not resolve the “VC content conflict type” conflict, because the tool sees the history in the target, which includes an add and a delete action:
      • Add file X to source during use of TFS over time.
      • Add file X to target during manual migration as eluded in question 1.
      • Delete file X from target as an attempt to resolve conflicts.
      • TFS Integration Platform migration pipeline process (see TFS integration Platform – Architecture Overview document for a process description) first analyses history and immediately stumbles at add file to target event, because the two adds conflict.
    • Instead of deleting the file, which does not delete history, use the destroy option.

CAUTION: Be careful, very careful, when using the destroy option. Delete is already a daunting command to run against a version control system, but by using destroy you are taking off your gloves. Double check your command and parameters, before committing to a destroy … which is a pretty permanent and potentially destructive ALM action.