When you create a shelveset you have a checkbox to choose whether you want to undo your pending changes at the same time or not. For #1, I would want to check the box to undo my changes, as the entire purpose of shelving is to get a clean local workspace to start on the new task.
Unshelving is how you restore the shelveset to your machine so you can keep working on it. It doesn't change the shelveset on the server (to do that you need to shelve things again and use the same shelveset name). One example for how I use it is to move changes between machines while I'm working on them.
If you click on the branch/folder in Source Control Explorer, right click, go to Find, then click Find Shelvesets as you do to see them, and then when you find the shelveset you want to look at, right click on it in your team explorer window and choose "Unshelve".
You can shelve pending changes (like a local check in) by right-clicking a file/project/folder/etc. and selecting Shelve Pending Changes. If you want to get your shelveset back or get other people's shelved changes. Go to File -> Source Control -> Unshelve Pending Changes….
Shelving has many uses. The main ones are:
Any other uses?
Shelving is a way of saving all of the changes on your box without checking in. The changes are persisted on the server. At any later time you or any of your team-mates can "unshelve" them back onto any one of your machines.
It's also great for review purposes. On my team for a check in we shelve up our changes and send out an email with the change description and name of the changeset. People on the team can then view the changeset and give feedback.
FYI: The best way to review a shelveset is with the following command
tfpt review /shelveset:shelvesetName;userName
tfpt is a part of the Team Foundation Power Tools
That's right. If you create a shelf, other people doing a get latest won't see your code.
It puts your code changes onto the server, which is probably better backed up than your work PC.
It enables you to pick up your changes on another machine, should you feel the urge to work from home.
Others can see your shelves (though I think this may be optional) so they can review your code prior to a check-in.
One point that is missed in a lot of these discussions is how you revert back on the SAME machine on which you shelved your changes. Perhaps obvious to most, but wasn't to me. I believe you perform an Undo Pending Changes - is that right?
I understand the process to be as follows:
So, if you want to start some work which you may need to Shelve, make sure you check-in before you start, as the check-in point is where you'll return to when doing the Undo Pending Changes step above.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With