After you unshelve your changes, run get (through Source Control Explorer, command line, etc.) to update the files. Any files with pending changes that are out of date will have conflicts and you'll be presented with the conflict resolution dialog. Once you've resolved the conflicts, you're changes are against the latest version (at that point in time).
Also, if you ever want to know what's out of date without actually getting files, you can run "h get /preview" from the command line to see what would happen without actually doing it.
One more thing regarding your comment about needing a clean workspace. What you can do when you need to use someone else's changes is bring up the shelve dialog and deselect the "Preserve changes locally" checkbox. Now when you shelve your changes, they are automatically undone and cleaned up (including deleting adds). They're safe on the server, and your workspace is now clean. At that point, you unshelve anything you need to and test your buddy's changes, etc.
When you are done, you can either undo or re-shelve your buddy's changes and again choose not to preserve local changes. Undo never deletes a pending add because, well, it would be a bad idea. But shelve /move (that's what it's called on the command line) can delete adds because they are safe on the server. So, shelve /move to a junk shelveset is a good way to completely clean your workspace and disk of the changes.
First, if I wanted to update my older unshelved file set with what is currently checked into the repository without having to check the files in, how do I do that from VS
>> Unshelve your changes, do a get (this will cause a merge), then reshelve your changes.
From the pending checkins tool window (which is my current homebase for VCS) I didn't see a way to do that. I had to go to source control explorer to undo pending changes. It might be nice to be able to do that from the pending checkins tool window.
>> There are a couple of ways to do this from the Pending Changes tool window - 1) you can shelve any existing changes (unchecking the Preserve pending changes locally checkbox), or 2) if you want to throw away the changes click the little blue arrow on the toolbar (the tool tip says Undo pending changes; there's also a right click menu - Undo that will be renamed to Undo pending changes before we ship).
Third, in order to view/delete shelvesets from the VS UI I have to select either "Shelve" or "Unshelve". That doesn't seem intuitive to me. It seems like there needs to be a "Manage Shelvesets" button or something like that on the pending checkins tool window.
I think I figured it out. I still had one shelveset loaded with pending changes. I tried to unshelve another shelveset and TF apparently didn't like that. A better error message would have been nice. So I did an "undo all pending changes" to get back to a clean workspace, then the unshelve of the other user's shelveset worked. I looked over his changes and checked in everything. Now I wanted to get back to another shelveset, I unshelved that with no problems. However I was a first a bit surprised that I wasn't asked to merge changes between the new, updated files and the older ones in my shelveset. I haven't had a chance to do this yet but I anticipate that merge will happen when I go to check in my files.
This brings up a couple of issues for me. First, if I wanted to update my older unshelved file set with what is currently checked into the repository without having to check the files in, how do I do that from VS Second, in order to play with someone else's shelveset it appears I need a clean workspace. From the pending checkins tool window (which is my current homebase for VCS) I didn't see a way to do that. I had to go to source control explorer to undo pending changes. It might be nice to be able to do that from the pending checkins tool window. Third, in order to view/delete shelvesets from the VS UI I have to select either "Shelve" or "Unshelve". That doesn't seem intuitive to me. It seems like there needs to be a "Manage Shelvesets" button or something like that on the pending checkins tool window.
I can certainly wait until V2 for "merge on unshelve" but it would be a great feature. However for V1 it would be nice to be notified on unshelve which files are out of date. It would also be nice to have a VS way to easily update/merge the currently checkout files with the latest in the repository. I don't see a way to do that in one fell swoop in VS. So far, shelvesets seem to be a great feature.
Unshelving error
DineshB
Thanks for those tips!
Debil
Also, if you ever want to know what's out of date without actually getting files, you can run "h get /preview" from the command line to see what would happen without actually doing it.
Buck
Sepp Obermayer
When you are done, you can either undo or re-shelve your buddy's changes and again choose not to preserve local changes. Undo never deletes a pending add because, well, it would be a bad idea. But shelve /move (that's what it's called on the command line) can delete adds because they are safe on the server. So, shelve /move to a junk shelveset is a good way to completely clean your workspace and disk of the changes.
Buck
VickiJohnson
>> Unshelve your changes, do a get (this will cause a merge), then reshelve your changes.
From the pending checkins tool window (which is my current homebase for VCS) I didn't see a way to do that. I had to go to source control explorer to undo pending changes. It might be nice to be able to do that from the pending checkins tool window.
>> There are a couple of ways to do this from the Pending Changes tool window - 1) you can shelve any existing changes (unchecking the Preserve pending changes locally checkbox), or 2) if you want to throw away the changes click the little blue arrow on the toolbar (the tool tip says Undo pending changes; there's also a right click menu - Undo that will be renamed to Undo pending changes before we ship).
Third, in order to view/delete shelvesets from the VS UI I have to select either "Shelve" or "Unshelve". That doesn't seem intuitive to me. It seems like there needs to be a "Manage Shelvesets" button or something like that on the pending checkins tool window.
>> Good feedback, we'll give that some thought.
Moshe Gutman
This brings up a couple of issues for me. First, if I wanted to update my older unshelved file set with what is currently checked into the repository without having to check the files in, how do I do that from VS Second, in order to play with someone else's shelveset it appears I need a clean workspace. From the pending checkins tool window (which is my current homebase for VCS) I didn't see a way to do that. I had to go to source control explorer to undo pending changes. It might be nice to be able to do that from the pending checkins tool window. Third, in order to view/delete shelvesets from the VS UI I have to select either "Shelve" or "Unshelve". That doesn't seem intuitive to me. It seems like there needs to be a "Manage Shelvesets" button or something like that on the pending checkins tool window.
BTW, these nits aside I really like this feature.
jko
Yes! Merge on unshelve would be a marvelous addition. Count my vote for getting this in Orcas (or sooner)!
Andreas Pollak
I can certainly wait until V2 for "merge on unshelve" but it would be a great feature. However for V1 it would be nice to be notified on unshelve which files are out of date. It would also be nice to have a VS way to easily update/merge the currently checkout files with the latest in the repository. I don't see a way to do that in one fell swoop in VS. So far, shelvesets seem to be a great feature.
pnp
You have hit upon a feature we all want internally as well - the ability to merge on unshelve. Unfortunately that is not supported for V1.
Please keep the feedback coming - particularly on the shelving feature.