Migrating Team Projects between Team Foundation Servers

I am looking at the steps necessary to move projects between two Team Foundation Servers where both servers have existing projects setup. The lack of information on how to do this on the Internet and forums indicates that this is not something that is easy to accomplish. We have selected the server which we have customized as the target machine and luckily the other server has a default installation of TFS on it so we don’t need to synchronize any of our own customizations.

I found a post on the Team Foundation Server forums which basically says MS will be looking at this but that there is no existing solution.
I also found a listserver mail archive which indicated that source control and work item history may be lost in the transfer.

At the moment I have a couple of working theories depending on what is possible through the extensibility API available at the VSIP site.

The simplest solution

  1. Manually create the Team Project
  2. Upload all the documents to SharePoint manually
  3. Use Work Item Utility, Mark Browns code for work item shallow copy or Excel to copy work items.
  4. Get the latest version of items in source control, unbind from the server and then check into the new server and rebind.

A complex solution

  1. Manually create the Team Projects
  2. Upload all the documents to SharePoint manually
  3. Adapt Work Item Utility (http://www.gotdotnet.com/codegallery/codegallery.aspx?id=b29d4456-c4ba-474e-a422-0479471776e1) to copy the history of all items if it is possible.
  4. Develop a tool (or find one on the internet) that gets every version of all the files in source control and checks them in with their original dates to the new server.

The second solution is better because we would like to keep all the history but I have a feeling that it may be difficult, maybe even impossible to keep history. Buck Hodges has posted a source control API sample and I believe that this could be modified to get existing code history and check it in to a different server. For the history to be persisted in the new server the CreationDate of the PendingChange objects that are checked in would need to be modified and the server would have to trust the date in the pending change from the client over its own date (unlikely). The super complex solution is to run the tools on the server and modify them so that the server’s date and time is changed between each check in to get them to occur at the right point in time! Probably a lot of work…

One Response to “Migrating Team Projects between Team Foundation Servers”

Read below or add a comment...

  1. Delly says:

    Yup, that’ll do it. You have my appreication.

Leave A Comment...