Search code examples
tfsupgradeworkspace

Upgrading TFS 2010 to new machine with a different name - What happens client side?


I have the following TFS upgrade scenario: I'd like to change my current TFS 2010 environment to TFS 2012 - this by moving the 2010 server to a new machine with another computer name.

Therefore I simply use the backups of the TFS 2010 databases from the old server and restore them on the new server. Before starting the backup I will turn off several TFS specific services on the old machine to avoid check-ins from devs. In the meantime the developers are working in offline mode. Afterwards I'm going to upgrade the databases.

Now it's getting interesting: The TFS 2012 is up and running with the upgraded project collections and everything works smoothly, but what happens to the local workspaces which are linked to the old TFS url? Is it possible that the developers can switch their exisiting workspaces with their pending changes to the new TFS 2012 url?

If yes, how can I do that? I've already did a test installation and upgraded to 2012 successfully, but I can't find out how to bind my existing workspaces with my pending changes to the new TFS. Initially I thought that the "Change Source Control" dialog could do the trick, but everything I'm able to click in the toolbar are the "Bind/Unbind" and "Refresh" buttons...

If no, I guess I have 2 options:

All I can do is forcing everyone to check-in/shelve and create a new mapping for the new server

OR

simply keeping the old TFS name/url? (Are the pending changes still available in this case?)

Thank you in advance! P


Solution

  • Workspaces are stored on the server, so when the users add the new server they should find their old workspace already setup for them. Complete with all their existing checkouts etc.

    If this doesn't work for a user, they can map a new workspace to the same directory, checkout all files in the tree, then use the tfs power tools do to a uncheckout unchanged (tpft uu /noget) to only leave their changed files checked out.