This project has moved and is read-only. For the latest updates, please go here.

Common Diff Tool Configurations For Visual Studio

The original information shown here was taken from James Manning's wonderful blog post. He also shows the arguments to use for many merge tools as well.

Here is a list of common Diff (i.e. Compare) Tools and the default Command and Arguments that should be used with them. See the section below for how to access the window that these settings should be used in.

Product Command Arguments
TFS default diffmerge.exe %1 %2 %6 %7 %5 /ignorespace
WinDiff windiff.exe %1 %2
DiffDoc (for Word files) DiffDoc.exe /M%1 /S%2
WinMerge winmerge.exe /ub /dl %6 /dr %7 %1 %2
Beyond Compare bc2.exe %1 %2 /title1=%6 /title2=%7
KDiff3 kdiff3.exe %1 --fname %6 %2 --fname %7
Araxis compare.exe /wait /2 /title1:%6 /title2:%7 %1 %2
Compare It! Wincmp3.exe %1 /=%6 %2 /=%7
SourceGear DiffMerge DiffMerge.exe /title1=%6 /title2=%7 %1 %2
Beyond Compare 3 BComp.exe %1 %2 /title1=%6 /title2=%7
TortoiseMerge TortoiseMerge.exe /base:%1 /mine:%2 /basename:%6 /minename:%7
Visual SlickEdit win\vsdiff.exe %1 %2

And here is a legend for what each of the arguments mean:

  • %1 = Original file (in diff, the pre-changes file, in merge, the "server" or "theirs" file, the file that is the base file after "their" changes were applied)
  • %2 = Modified file (in diff, the post-changes file, in merge the "yours" file - the base file with "your" changes applied)
  • %3 = Base file (in the 3-way merge operation, the file which both "theirs" and "yours" are derived from - the common ancestor.  This doesn't mean it's the version the changes were based from, since this may be a cherry-pick merge)
  • %4 = Merged file (The output file for the merge operation - the filename that the merge tool should write to)
  • %5 = Diff options (any additional command-line options you want to pass to your diff tool - this comes into play only when using "tf diff /options" from the command-line)
  • %6 = Original file label (The label for the %1 file)
  • %7 = Modified file label (The label for the %2 file)
  • %8 = Base file label (The label for the %3 file)
  • %9 = Merged file label (The label for the %4 file)

How To Change The Default Visual Studio Diff Tool

To change the default Diff Tool that Visual Studio uses for comparing various file types, in Visual Studio go to:

  • If you have Diff All Files installed:
    Tools -> Options... -> Diff All Files and press the "Configure Diff Tool..." button.
  • If you do not have Diff All Files installed:
    Tools -> Options... -> Source Control -> Plug-in Selection and make sure the current source control plugin is set to Visual Studio Team Foundation Server. Then go to Source Control -> Visual Studio Team Foundation Server and click the "Configure User Tools..." button.

You should see the Configure User Tools window. Click the "Add..." button to get the Configure Tool window.

 Configure User Tools window Compare Tool window

Specify the file types that you want the new diff tool to be used to compare (use .* to specify all file types), make sure the Operation is set to Compare, set the Command to the diff tool executable's path, and specify the Arguments to pass to it (see section above for common diff tool arguments).

Last edited Mar 13, 2014 at 6:59 PM by deadlydog, version 7