Although the default compare tool built in with Visual Studio/TFS is adequate, I find situations where third party solutions have automatically resolved situations that the default tool did not. I have used a variety of tools and prefer KDiff3, but WinMerge, Beyond Compare, and others are all great options.
After setting up Visual Studio to use a custom tool, it will automatically use it for both comparisons and merges without prompting you. The automatic calculation of conflicts on check-ins is still done on TFS. This means it may list a certain number of conflicts, but when you open them locally with your custom tool they may all be resolved automatically. It may seem like it’s an extra step, but if you were just using the built-in tool, you would have handle all of the conflicts.
Go to Tools -> Options from the main menu.
Then go to Source Control -> Visual Studio Team Foundation Server.
From here click on Configure User Tools button, which will bring up the following popup.
After clicking Add, you will be given the opportunity to provide information for using a custom merge and compare tool.
You can see from the drop down there are two choices that correspond to our tools. Third party tools use different command line arguments for specifying compare and merge operations, so we need to specify them separately.
- For the extension textbox, enter “.*” without the quotes. This will use the tool you specify for all of the file types.
- Select the operation for Compare or Merge.
- In the Command textbox, click the ellipse button and find the executable to the third party utility you have installed.
You can see the right arrow is clicked in the figure above and it expands a help menu. This menu is specifying how Visual Studio will provide the files, options and information to the utility.
For this example I’m using KDiff3. The arguments I use for compare are:
%1 –fname %6 %2 –fname %7
For the merge arguments, I use:
%3 –fname %8 %2 –fname %7 %1 –fname %6 -o %4
- KDiff3 0.9.95
- Visual Studio 2010 SP1