Replace diff/merge tool in Visual Studio Team System with WinMerge

I have been using Visual Studio Team System 2008 for a while now and am really starting to like the tightly integrated source control and work item functionality. One thing I cannot get used to is the basic diff/merge tool.

Where is the detail ?

The screenshot below demonstrates the basic nature of the diff tool built into Visual Studio Team System. There is no indication of the number of differences between the files being diff’ed or even the actual differences on a particular line …Visual Studio Team System Default Diff Tool

WinMerge

There is an alternative and it is both open source and free ! From the WinMerge site:

WinMerge is an Open Source differencing and merging tool for Windows. WinMerge can compare both folders and files, presenting differences in a visual text format that is easy to understand and handle.

Download WinMerge and install it.

Configure Visual Studio

Open Source Control > Visual Studio Team Foundation under the Tools > Options menu in Visual Studio.

Tools > Options > Source Control > Visual Studio Team Foundation

Click on Configure User Tools … and the Configure User Tools dialog will become available.

Configure User Tools ...

Add the WinMerge details for the Compare Tool. Click on the Add … button on the Configure User Tools dialog and configure as per the screenshot below. The arrow button next to the arguments text box exposes details about the information that Visual Studio can provide the tool being configured.

The configured arguments below are:
/e /u /wl /wr /dl %6 /dr %7 %1 %2

Configure Tool for Compare Operation

Add the WinMerge details for the Merge Tool. Click on the Add … button on the Configure User Tools dialog and configure as per the screenshot below. The arrow button next to the arguments text box exposes details about the information that Visual Studio can provide the tool being configured.

The configured arguments below are:
/e /u /wl /dl %6 /dr %7 %1 %2 %4

Configure Tool for Merge Operation

The Compare and Merge Operations should now be configured to use WinMerge.

Configured User Tools

WinMerge Command Line Options

WinMerge contains a number of command line options. The following are the ones used in the configuration above.

/e Enables WinMerge to be closed with a single Esc key press.
/u Prevents WinMerge from adding either the left or right hand side  file path to the Most Recently Used (MRU) list.
/wl Opens left hand side as read-only.
/wr Opens right hand side as read-only.
/dl Description for left hand side title bar.
/dr Description for right hand side title bar.

Finally a decent diff !

Now a Compare in Visual Studio is more meaningful, It shows the number of differences, their positions within the compared files and actual differences per line. WinMerge supports custom syntax colouring and diff colouring.

Visual Studio Team System with WinMerge

Advertisement
This entry was posted in Uncategorized and tagged , . Bookmark the permalink.

13 Responses to Replace diff/merge tool in Visual Studio Team System with WinMerge

  1. JerseyNo10 says:

    Brilliant stuff…just what the doctor ordered.Thanks!

  2. Robert says:

    With the risk of sounding incredibly lazy; it would be nice if the command line options you used were presented as selectable text.

    • Paul Bouwer says:

      I’m always willing to make the information in a post easier to use. I’ve updated the post to include the WinMerge arguments as selectable text.

  3. Andy says:

    Thank you so much for posting this. Really useful!

  4. AB says:

    Thanks for sharing..
    Was looking exactly for this ..

  5. Thanks. WinMerge is such a better diff tool.

  6. Pingback: Friends Don't Let Friends Use VS Merge Tool - Andreas Zenker

  7. Dyppl says:

    That’s just awesome, thanks a ton

  8. barryjohns says:

    Great. Very helpful. Thanks mate.

  9. carson630000 says:

    Wish I’d made the effort to set this up years ago, thanks for making it so smooth & easy for me.

  10. Randy says:

    This is great! Thanks a lot!

  11. HoppingYop says:

    Me and my team mates echo everyone’s replies here. We are very thankful for this post. WinMerge is definitely a much superior tool than the one VS includes, and this post makes it very easy to integrate it in VS.

    Thanks again.

Leave a Reply

Fill in your details below or click an icon to log in:

Gravatar
WordPress.com Logo

Please log in to WordPress.com to post a comment to your blog.

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Connecting to %s