
The Difference between Changesets and Shelvesets
When you check in one or more of the pending changes in your workspace, Team Foundation creates a changeset in the source control server. A changeset is a group of source file revisions, check-in notes, a comment, and links to associated work items. Similarly, a shelveset is a group of source file revisions, check-in notes, comments, and a list of associated work items. However, a shelveset does not contain a collection of committed and versioned file changes. Both shelvesets and changesets are stored on the Team Foundation server and can be retrieved into a workspace by any user who has sufficient permissions.
Other differences between changesets and shelvesets:
Unlike a changeset, a shelveset is a non-versioned entity. If you or another user unshelve the items of which a shelveset consists, edit several files, and reshelve the shelveset, Team Foundation does not create a new version of the items for future comparison and maintains no record of who revised the items, when, or in what manner. The original shelveset is completely replaced.
You can delete a shelveset but you cannot delete a changeset.
You can link a changeset to a work item so that when a user clicks the changeset link on the Links tab of the work item form, the changeset is automatically retrieved to the current workspace. This functionality is not supported for shelvesets.
You can prevent or at least, strongly discourage users from creating changeset that do not comply with established team standards by creating and enforcing check-in policies. This functionality is not supported for shelvesets.