The unshelve operation supported by tf.exe does not allow shelved changes and local changes to be merged together, which could cause many problems:
Problem scenario One
1. You made a shelve set “TEST_ShelveSet” on work space A, day time A.
2. You un-shelve “TEST_ShelveSet” on work space B, day time B. TFS will not try to merge the change between {the change between day time B and day time A} and {“TEST_ShelveSet”},
instead, it will
a. Replace your local file with the file in “TEST_ShelveSet” if your local file is not checked out, which causes very bad result.
b. Throw out an un-shelve error if your local file is checked out.
Problem scenario Two
http://blog.stevehorn.cc/2007/11/team-foundation-server-unshelve.html
Actually we have the tool “tfpf” to un-shelve our shelve set:
http://msdn.microsoft.com/en-us/teamsystem/bb980963.aspx
http://blogs.msdn.com/buckh/archive/2005/11/16/493401.aspx
But still remember, keep all the files which will be influenced by the shelve set in “checked out” status if you want to utilize merge functionality.