Let's assume that some developer in my team shelved his changes that he did in branch A. And I am working on branch B. Can I unshelve his changes into branch B? (By GUI or command prompt)
The shelf information includes the specific path it goes to. Unfortunately I don't know of any automatic way to unshelve to any location other than the one it was shelved to. The times I've wanted to do this I had to check out the equivalent files in the new branch, unshelve from the old branch, then manually copy the files over.
EDIT: Well, I guess I was doing it the hard way. I'll have to try out Curt's solution. :)
The power tools should let you do this.
C:\src\2\Merlin\Main>tfpt unshelve /?
tfpt unshelve - Unshelve into workspace with pending changes
Allows a shelveset to be unshelved into a workspace with pending changes.
Merges content between local and shelved changes. Allows migration of shelved
changes from one branch into another by rewriting server paths.
Usage: tfpt unshelve [shelvesetname[;username]] [/nobackup]
[/migrate /source:serverpath /target:serverpath]
shelvesetname The name of the shelveset to unshelve
/nobackup Skip the creation of a backup shelveset
/migrate Rewrite the server paths of the shelved items
(for example to unshelve into another branch)
/source:serverpath Source location for path rewrite (supply with /migrate)
/target:serverpath Target location for path rewrite (supply with /migrate)
/nobackup Skip the creation of a backup shelveset
Masterful. :) Um, 'auto merge'? Yeah, cause that's what I want to do, trust a tool to decide conflicts for me. :) If that's what you mean by 'the merge goes horribly wrong', it's time to spend a bit more than 30 seconds recovering your shelfsets. :)
Much better than copying the files over and having No Idea wtf the changes were. :)