Is there a way to compare 2 shelves in TFS without having to resort to unshelving both in separate workspaces and diffing the files?
I was looking for the same i.e. to compare the contents of two shelveets without needing to unshelve one of them. End up writing a Visual Studio extension for the functionality.
The extension is available for Visual studio 2013
http://visualstudiogallery.msdn.microsoft.com/1fa59764-efc6-457a-a5f3-81ca68e280e8
and for Visual studio 2012
http://visualstudiogallery.msdn.microsoft.com/33c521d4-73fc-48be-969d-fa68c511341f
Please feel free to use and give your feedback.
I don't have access to TFS currently, but if the file in the shelveset has a unique idenitifer (like say $/x/y/z/a.b.c;SH='ShelvesetName') you should be able to issue a command line tf dff command to compare each one.
Or
If you unshelve one and then use the command line TFS power tools to compare the other one with the review command
tfpt review /shelveset:shelvesetName;userName
The power tools are version specific and you can download the following versions:
In Visual Studio you can go to Team Explorer, Pending Changes, Actions - Find Shelvesets, then find your Shelveset, right click and View ShelveSet Details, you end up with a list of file, right click the one you're interested in and choose Compare with Workset.