Unshelve Command
Restores shelved file revisions, check-in notes, comments, and work item associations to the current workspace or removes an existing shelveset from the server.
Required Permissions
To use the unshelve command, you must have the Read permission set to Allow, and you must have the Check out permission for the items in the shelveset set to Allow. Additionally, to delete a shelveset, you must be its owner or have the Administer shelved changes global permission set to Allow. For more information, see Team Foundation Server Permissions.
tf unshelve [/move] [shelvesetname[;ownername]] itemspec
[/recursive] [/noprompt]
Parameters
Argument |
Description |
---|---|
shelvesetname |
The name of the shelveset to restore. |
ownername |
The name of the shelveset owner. |
Itemspec |
Identifies the file or folder revisions to unshelve into the current workspace. If this parameter is not included, all pending changes in the specified shelveset are unshelved, by default. Server paths are not allowed. For more information about how Team Foundation parses itemspecs to determine which items are within scope, see Command-Line Options. |
Option |
Description |
---|---|
/move |
Deletes the specified shelveset from the Team Foundation server upon successful completion of the unshelve operation. This option cannot be combined with an itemspec. You can also delete a shelveset using the shelve command. |
/recursive |
If specified, the itemspec is matched recursively. |
/noprompt |
If specified, you are not prompted for input. |
Remarks
The unshelve command of the tf command-line utility retrieves either all shelved file revisions or a defined subset of all shelved file revisions from the Team Foundation server into the current workspace.
To unshelve an item, there must be no pending revisions against it in the destination workspace.
When you unshelve a shelveset, Team Foundation restores each shelved revision into the destination workspace as a pending change as long as the revision does not conflict with a change that was already pending in the workspace. For more details about what happens during the unshelve process, see Working with Version Control Shelvesets.
You can use the unshelve command to restore individual file revisions from a shelveset to your workspace. You should run get after unshelving to reconcile any changes checked into the server since the shelveset was created.
For more information on how to find the tf command-line utility, see Tf Command-Line Utility Commands.
Recycle Shelved Changes
If you want to integrate shelved revisions into your current workspace in order to make ongoing revisions, unshelve the desired shelveset. As a best practice, get the latest version of your version-controlled files after unshelving as well.
Unshelve and Review Another User's Code
You can also unshelve a shelveset in order to review changes from another user's workspace. To unshelve for this reason, you have two options.
If the shelved items and the items with which they are related have not been revised, or have only been revised lightly since the shelveset was created, you can retrieve the base version of all related items from the shelveset owner's workspace. To do this, use some variation of the following command: tf get * /version;Wworkspacename, where workspacename is the name of the workspace from which the other user created the shelveset.
If a significant amount of time has passed or if multiple revisions have been in the workspace since the shelveset was created, retrieve the version of all related items from the server as of the date and time when the shelveset was created.
You can unshelve another user's shelved change by appending the username to the shelveset name. However, you can only remove a shelveset from the Team Foundation Server that was created by another user if you have the AdminShelvedChangesets permission.
If you attempt to unshelve an item for which a pending change exists in the destination workspace, Team Foundation does not merge differences between the items and does not retrieve the revision into your workspace.
You can delete a shelveset by using tf shelve /delete. For more information, see Shelve Command. In order to automatically delete a shelveset after unshelving the entire shelveset, use tf unshelve /move.
Examples
The following example opens the Unshelve dialog box so that you can find and unshelve a shelveset into the current workspace. You also have an option in the dialog box to have the shelveset deleted when the unshelve operation completes.
c:\>tf unshelve
The following example unshelves the shelveset buddytest_1256 into the current workspace and removes it from Team Foundation Server.
c:\>tf unshelve /move buddytest_1256
See Also
Tasks
Walkthrough: Advanced Functionality of Version Control
How to: Shelve and Unshelve Pending Changes
Concepts
Working with Version Control Shelvesets
Reference
Command-Line Syntax (Team System)