TFS: submit changes done locally in one branch to another branch

Evgeniy Berezovsky picture Evgeniy Berezovsky · Jan 19, 2012 · Viewed 19.2k times · Source

I made changes to a lot of files, and in the meantime I figured I rather commit this untested code to a yet-to-be-created branch, so that users of the existing code base are not affected.

As I touched really many, many files and created and added new sub-projects etc., I want to avoid copying files and folders manually.

What's the easiest way to get this done in Visual Studio?

Answer

Grant Holliday picture Grant Holliday · Jan 19, 2012

This functionality is provided using tfpt unshelve /migrate. To use it, follow these steps:

  1. Create a shelveset of your changes (from the UI, or tf shelve . /R)
  2. Create the new branch
  3. Download and install the Team Foundation Server Power Tools
  4. From a Visual Studio Command Prompt, run the following command: tfpt unshelve /migrate /source:$/TeamProject/Main /target:$/TeamProject/Beta

This will essentially re-write the paths in your shelveset to the new branch.