Three Nice Looking Diff Tools and My Pick

1 Desire

Diff’s are hard. 80% of the time they are simple and fast. 20% of the time they are, well, complicated! My days of text-only diffs are coming to an end. They remain a part of my toolbox but I want a grown-up GUI diff tool. Fortunately there are plenty of options. But how to choose?

  • My decision making process was pretty simple: write down questions about them and answer them in a big spreadsheet
  • See where that takes me
  • Make a decision

Here is how it went.

2 Questions For The Spreadsheet

While this section is here for completeness, it is pretty boring to read.

You can probably just skim the column headers to get the intent of the column.

Unless you want detailed evaluation criteria, move on.

  • Name
    • Product name : string
    • URL : string
  • Cross Platform
    • First-class support on Windows, Linux, and OSX : boolean
  • VC Configuration mentions
    • Git : boolean
    • SVN : boolean
  • Block Guide : boolean
    • Indicator to show you where blocks of code moved in the diff
  • Unicode support : boolean
  • Comparisons : structure
    • 3 way : boolean
    • visual diff : boolean
    • directory compare : boolean
    • image compare : boolean
  • Binary files : structure
    • MS Office : boolean
    • PDF : boolean
    • XLS : boolean
    • iWork : boolean
  • Reviews (1(00-40), 2(40-60), 3(60-80), 4(80-100))
    • SDWest : symbol
    • Jolt : symbol
    • Tucows : symbol
    • C/NET-Download.com : symbol
  • Gut feeling
    • Good/Bad : boolean
  • Overall feeling : symbol
    • Unacceptable, Acceptable, Wonderful
  • License cost
    • USD : integer
  • Comments
    • string

3 Workflow

  • Make many observations
  • Iterate over observations to discover previously unknown personal preferences
    • Review observations
    • Refine observations
  • Classify the observations
    • Top choice: Consider it
    • Near top choice: Looks great but not going to consider it
    • Not an option: Won’t work for me

4 Observations

I broke out the simple answers the comments into two sections so they would fit on the page.

Comments

Name Com
DeltaWalker Intelligent text-comparison between iWork and Office files. Same between archive files.
Guiffy Website covered all of the key stuff. Seems like “it just works”. Advanced 3-way merge algorithms is eye catching. Java based. Unicode and 150 other encoding suppor language syntax highlighting. Everything keeps sounding better. Great developer reviews. Included notes for .gitconfig settings so they are real developers.
BeyondCompare Delimeted data file merging, very nice. Compare CSV, tab delimited, HTML tables, and Excel worksheets. Compare CSV, tab delimited, HTML tables, and Excel worksheets.
SmrtSyncnz No comment
KDiff3 No comment
DiffMerge Unicode files are normalized during load see here.
ECMerge Not developer focused. Not the end of the world. Hard to get a sense of this product’s flavor.
xxdiff Looks like a stunnning tool, but primarily UNIX. Builds exist for Windows but are not first class.
Diffuse Not my cup of tea.
tkdiff Not my cup of tea.
Vim (diff) Not my cup of tea.
Perforce Probably works best with Perforce; that holds its focus.
AraxisMerge No Linux support.
Tortoise No comment
OpenDiff No comment
Changes No comment
DiffFork No comment
VisualDiffer No comment
CompareMerge No comment
Kaleidoscope No comment

Simple

Name Crx VC BGd Unc Comp Bin G O Lc
DeltaWalker All ++ T T ++ ++ G W 90
Guiffy All ++ F T ++ +” G W 75
BeyondCompare All + F T ++ +” G   80
SmrtSyncnz All ++ T T +” “” G A 40
KDiff3 All ++ F T +” “” G A  
DiffMerge All ++ F T* +- G A 0
ECMerge All T ? + +”? G A 50
xxdiff All     F     G U  
Diffuse All F   +” B    
tkdiff All           B    
Vim (diff) All + F            
Perforce All              
AraxisMerge OW-                
Tortoise Win                
OpenDiff OSX                
Changes OSX                
DiffFork OSX ++ T            
VisualDiffer OSX F            
CompareMerge OSX                
Kaleidoscope OSX                

5 Decision On What To Evaluate

There are so many great options. It is hard to figure out which one to use.

These questions made it easy for me to narrow them down to these top three:

After performing some more gut checks, my choice for evaluation: DeltaWalker.

Why? It was really just my gut feeling. There are all so similar so I went with my gut.

6 Evaluation

  • Read the Welcome document
  • Read the How Do I? section
  • Read about how to integrate Git
  • Read the Comparing Files section
  • Skimmed EverythingElse section
    • You may script DW using JS via Rhino
  • All you may only need to read are the Tips & Tricks as it covers all of the really useful productivity stuff and you can dig into details in the main document
  • Read the preferences section
    • Overview
      • You my customize the diffing algorithm, interesting
      • Per comparison preferences are forked and stored, interesting
    • All Comparisons
      • Must read this
      • Can choose the diffing algorithm
    • Also Image and Text Comparisons
  • Skimmed FolderComparisons and they seem to be virtually identical

7 Purchase

  • Bought DeltaWalker
  • This is one of the best pieces of software that I have ever used in seventeen years of professional software development and I love it.