As an experienced SVN user and TFS beginner, I have some questions about the Shelving/Unshelving process. Hopefully some experienced user can help me a bit with them. My intent is to understand how shelving/unshelving works regarding file contents and versionspecs. To do that, I will present some concrete situations.
I have my (remote) workspace mapping updated to versionspec (== svn revision) X, and I do some local changes, and then shelve them.
- Can I unshelve them in a different, empty workspace mapping (before doing any 'get')?
- Can I unshelve them in a different workspace mapping, which is pointing to versionspec X-2 (no relevant changes in the code between these to versionspecs)?
- Can I unshelve them in a different workspace mapping, which is pointing to versionspec X+2 (no relevant changes in the code between these to versionspecs)?
- Can I unshelve them in a different workspace mapping, which is pointing to a different version spec which has 'relevant changes' in the affected files/lines?
- Can I unshelve them in a different workspace mapping, pointing to versionspec X+2, without 'relevant changes' at X+2, but with relevant changes that happened at X+1 (imagine, a line that is removed at X+1, but appears again at X+2) ?
What is the expected behaviour in those cases. Would i get any errors/conflicts? Would I encounter any difference if I used a local workspace instead of a server one?