SourceGear’s DiffMerge and Subversion

Eric Sink has just posted that SourceGear’s DiffMerge is free. Woot a new tool!

As a subversion user, I thought I’d check it out, compared to the default TortoiseMerge. Well it beats the pant off that, but still left a few things lacking..

The first part getting TortoiseSVN to use the external tool.

TortoiseSVN options window
TortoiseSVN options window

Using the command line parameters %mine %merge %theirs

Hay presto it works. Well you get the Subversion failed merged result in the middle. As DiffMerge only supports three files so you can’t see the base and the result as the same time. But as the Subversion merge failures are messy, DiffMerge finds the merge failure points really easily with the Next Merge button (need to learn the keyboard short-cut).

A subversion merge failure look like this

DiffMerge in 3-way action
DiffMerge in 3-way action

The nice thing is you get highlighting between the mine/theirs so here you can see I inserted a HWND cast, and the replace with this block works real nice.

So first before I note my wish list, I will be using DiffMerge over TortoiseMerge. This will help as a stop measure until I get to trial the new Beyond Compare Merge tool (hope it lives up to my expectations)

Simeon’s Free DiffMerge Tool improvement list:

  • Do four way merge: Mine, Base, Theirs, Result. This way I can see what each person changed and have a more informed edit.
  • Allow me to manually match the 2/3 documents. Like I can do in BeyondCompare 2
  • Improve the auto matching code, if in the above code picture, the left (and thus top of the merged “working” code was indented differently then the for loops would not align. This could be solved by fixing the indentation in the result file, or by deleting the working line.
  • Give me a bigger screen at home, wow, you really can’t see much code on a 17” monitor, running 1152x864. Well this is my own problem to solve.
  • Support the subversion method of marking the result set…

That’s it for now. Thanks Eric and SourceGear, this really is better than what I had before.