Thursday, 16 January 2014

Comparing two Shelvesets

Ever been in a situation where you have created a shelveset for a colleague to review or extend and he/she has created another shelveset for you. It’s often quite time consuming to find out the changes made on top of your shelved changes. The way to compare contents is to unshelve one of them and then compare the files in other with the workspace version of the files. This is not ideal especially if you have already got some other pending changes as well.

Since, neither Visual Studio nor Team Foundation Server Power Tools provides this functionality, I thought it would be useful to create a visual studio extension to allow comparing two shelvesets. Have been meaning to do it for some time but only found time to create one. The extension is now created and published in the visual studio gallery. I have made it an open source project and the source code is available at https://shelvesetcomparer.codeplex.com/.

Once installed the extension appear as a Navigation button in your Team Explorer window.

PreviewImage

Clicking on the button will open up the “Shelveset Comparer” window showing your shelvesets in the default view

clip_image001[7]_ca051aed-1e8f-4503-bfbd-2634176e8c95

You can type another person’s name to fetch his/her shelvesets. Once you have selected the two shelvesets, click the “Compare” button and it will list the files in the two shelvesets side-by-side. It also does a binary comparison of the common files to review if they have the same content or not.

clip_image002_14931e02-0615-43c7-9977-818103db3947

Double click on any file and you will see the contents of the selected files with the changes highlighted.

clip_image003_5e8cb8d5-2f58-47f0-88b6-56d54e6585f4

Please note that the file comparison is only for reference. None of the two files shown in the comparison window are downloaded in your workspace or is the working version of the file.

I hope this extension is useful for the developers community and am looking to hear back with your feedback and suggestion and of course if you want to contribute, please drop me a line. Happy coding!!