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
-
3What exactly is it that you're trying to do that you can't do with Visual Studio or `tf.exe`? – Edward Thomson Oct 26 '12 at 07:46
-
I agree with Edward Thomson. This question stipulates part of a solution to an unstated problem. Unshelve inherently updates the "local folder" (local workspace) it's unclear how that fails to meet your needs. – ScottWelker May 31 '18 at 00:36
3 Answers
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:
- Create new workspace, but do not download anything (i.e. do not get the latest version)
- That should create an empty local folder
- Do unshelve by using either Visual Studio or tf.exe
- 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)

- 1,958
- 13
- 16
-
this will not work if shelveset is created for new and unmapped solution. I got "No appropriate mapping exists for" errors – Disappointed Nov 14 '17 at 10:04
-
1@Disappointed I ran into problems with creating new work space, added an alternative answer. – jimjim Jan 22 '18 at 07:17
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.

- 612
- 6
- 7
- Close Visual Studio
- Rename the folder, e.g add postfix original to the folder name so "SolutionX" folder becomes "SolutionX - Original"
- Make a "SolutionX" folder again, this is going to be empty
- Open VS, unshelve shelvset1, "SolutionX" will now only have shelvset1 files
- Close VS (this might not be needed)
- Rename "SolutionX " e.g. to "SolutionX Shelveset1"
- Make a "SolutionX" folder again, this is going to be empty
- Open the VS and Undo Pending Changes
- Unshelve shelvset2, "SolutionX" will now only have shelvset1 files
- Close VS, Rename "SolutionX" folder to "SolutionX Shelveset2"
- Rename "SolutionX - Original" folder to "SolutionX"
- Open the VS and Undo Pending Changes
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.

- 2,414
- 2
- 26
- 46
-
TY! Very helpful for those of us lacking permissions to create workspaces to accomplish the same outcome. – iokevins May 19 '20 at 00:41