-->

How to download TFS shelveset

2019-03-17 09:46发布

问题:

I need to download a shelveset from TFS to a local folder. Is there any tools or add-in for Visual studio 2010 to download shelveset

回答1:

If you just need to get the files from the shelveset to your local folder, this is a normal process and called Unshelve. It downloads the files to your local folder.

For example, before unshelve you had the following in your local folder:

  • File 1
  • File 2

The shelveset has:

  • File 1 (Modified)
  • File 3 (Created)

After unshelve there will be:

  • File 1 (Updated)
  • File 2
  • File 3 (Added)

If you need to have only the files from the shelveset in your workspace folder without anything else, one of the ways would be:

  1. Create new workspace, but do not download anything (i.e. do not get the latest version)
  2. That should create an empty local folder
  3. Do unshelve by using either Visual Studio or tf.exe
  4. You should have only the files from the shelveset

You can find more about managing shelvesets here: Suspend Your Work and Manage Your Shelvesets (MSDN)



回答2:

Using command prompt, we can get a dump of the files :

set shelveset=<ShelvesetName>
set temppath=c:\temp\%shelveset%
md %temppath%

for /f "delims=;" %t in ('tf status /shelveset:%shelveset% /format:detailed ^| find ^"$^"') do tf view %t /shelveset:%shelveset% /noprompt > %temppath%\%~nxt

Note that this gives a flat structure and will rewrite if there are files with same name.



回答3:

  1. Close Visual Studio
  2. Rename the folder, e.g add postfix original to the folder name so "SolutionX" folder becomes "SolutionX - Original"
  3. Make a "SolutionX" folder again, this is going to be empty
  4. Open VS, unshelve shelvset1, "SolutionX" will now only have shelvset1 files
  5. Close VS (this might not be needed)
  6. Rename "SolutionX " e.g. to "SolutionX Shelveset1"
  7. Make a "SolutionX" folder again, this is going to be empty
  8. Open the VS and Undo Pending Changes
  9. Unshelve shelvset2, "SolutionX" will now only have shelvset1 files
  10. Close VS, Rename "SolutionX" folder to "SolutionX Shelveset2"
  11. Rename "SolutionX - Original" folder to "SolutionX"
  12. Open the VS and Undo Pending Changes
  13. Use your compare tool to compare "SolutionX Shelveset1" and "SolutionX Shelveset2"

    If you find that some of the steps are not needed, let me know to update this, I tried the first answer, ran into problems and had to come up with this instead.