April 8, 2013

Using WinMerge and DiffMerge in Visual Studio 2010 and 2012

(Note: See the new post for Visual Studio 2013 and 2015, and WinMerge2011.)

I use WinMerge for file compare and DiffMerge for merge operations in Visual Studio 2010 and 2012. Here are instructions on how to setup Visual Studio to use those tools.

  1. Go to Tools -> Options to bring up the Options dialog
  2. Go to Source Control -> Visual Studio Team Foundation
  3. Click on "Configure User Tools..."

Add a new entry for WinMerge:

  • Extension: .*
  • Operation: Compare
  • Command: C:\Program Files (x86)\WinMerge\WinMergeU.exe
  • Arguments: /e /x /wl /u /dl %6 /dr %7 %1 %2

Add a new entry for DiffMerge:

  • Extension: .*
  • Operation: Merge
  • Command: C:\Program Files\SourceGear\Common\DiffMerge\sgdm.exe
  • Arguments: /m /r=%4 /t1=%7 /t2=%8 /t3=%6 /c=%9 %2 %3 %1

WinMerge hasn't been updated in a while, but still very capable, and much better than the VS built-in tool prior to VS 2012.

DiffMerge offers three-pane comparison, which I can't live without when resolving merge conflicts.

I've been using above tools for many years now. Visual Studio 2012 includes improved built-in compare and merge tool, and that might make above not necessary, but I haven't used it much yet as of now.

It would be nice if these tools were a little bit more smarter, such as detecting code block moves -- like Eclipse Java Compare...

No comments:

Post a Comment