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.
- 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
- 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
I broke out the simple answers the comments into two sections so they would fit on the page.
|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.|
|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.|
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.
- 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
- 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
- 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.