honekamp.net

File Comparison

Beats me, but as far as I can see it is a rare case that a whole category of applications on the OS X platform does not even come close to the category-defining app on the Windows platform.

However, with respect to the category of apps for file and folder comparison I can’t help but admit that I have no seen anything in a reasonable price range that comes close to Beyond Compare.

Beyond Compare can not only compare files but also entire folders, it suports in-place editing of compared files, comes with the ability to compare images, and it is even possible to apply some rudimentary syntax-coloring to compared text files. In comparison to the feature set and overall quality of the app Beyond Compare is more than reasonably priced.

In other words, I’d be happy if I could get a similar package for OS X for my personal usage for an affordable price.

Mind you, a file and/or folder comparison tool comes in handy in many cases, when using software configuration management (SCM) solutions like Git, Mercurial, or Subversion the usage of a proper file comparison tool is a must.

Personally, I prefer to use Mercurial over other SCM approaches and in particular I make use of the SourceTree app as my preferred GUI-based Mercurial client for OS X. SourceTree, in turn, natively supports the integration with a number of file comparison tools for the purpose of browsing the differences between versions of the same file.

Naturally, I set out to check some of them to see whether and how they fit my needs for file comparison. Without much further ado, the result was disappointing to some degree.

This admittedly harsh statement applies e.g. in terms of functionality where I had to discover that there are tools out there that indicate a changed line but are unable to be more precise about what exactly has changed. I don’t know who would be happy with this behavior, even for the hobbyist this seems on the brink of acceptability.

In addition to be functionally challenged, some of the tools were seemingly abandoned and have not even seen a minor update in what seems like ages in the computing landscape. Sad.

Anyway, here is a totally subjective and by no means comprehensive excerpt from my notes I took during the time I had a closer look at the respective tools:

DiffMerge

DiffMerge, provided by the company SourceGear is a cross-platform application available for Windows, OS X, and Linux. In many cases, the fact that an app is available cross-platform translates to some form of ugliness with respect to the UI and DiffMerge admittedly is no exception from this rule.

This does not only apply to the UI elements, also the usage of DiffMerge is not very intuitive from the point of view of an OS X mindset.

According to the release notes available on the web site the app has undergone the last update in December 2011. At the time of this writing this is less than a year ago, and as far as file comparison tools on OS X go, this is not even bad in comparison to the competition.

In terms of functionality, however, DiffMerge scores some points by providing the ability to compare entire folders with each others and also it suports in-place editing of compared files. However, it does not seem as it it was possible to apply soft line wrappings in compared files1.

On the plus-side, DiffMerge indicates differences between compared files accurately to the single character.

Anyway, my biggest concern with DiffMerge is that it obviously has some trouble with file encodings such that German umlauts in UFT-8 encoded files appear as a crippled mess in DiffMerge and that clearly is a no-go for an app that I would want to rely on.

Like already suggested by the name, DiffMerge can, to some extent, merge two files into a third. For the lack of a realistic use case, I don’t have any personal experience with how good the implementation of this functionality in reality is.

DiffMerge can be downloaded for free. Which is only fair because I think I would not be willing to pay anything for it.

BBEdit

Yes, you’ve got that right. BBEdit (or TextWrangler, for that matter) can do file comparisons and the result of the comparison is accurate to the single character. Also, soft line-wrappings are properly applied such that unformatted text can be subject to a comparison.

The thing is that the files are displayed side-by-side in two different windows while there is also a third window below the two that contains a list of changes. The individual changes in the file windows only become visible after clicking on an element of the before-mentioned list.

I’m sure there is a reason for this set-up, only I don’t really see the point. In my opinion this behavior in not very intuitive. But, hey, for a text editor that does file comparison as a side-business the result is quite good albeit a bit awkward to work with.

Of course, it is possible to edit the files in-place during the file comparison.

Changes

On paper, this may be the most capable contender. It does diff and merge, provides scripting interface as well as a command line interface.

Unfortunately, it seems as if the tool has been abandoned long ago. How else should I interpret the slogan “screams on Leopard” on the app’s homepage other than that it has not been updated for a long time2

Even if the tool fulfilled my needs 100% I would very likely not be willing to pay money for a license for the fear that it will break in one of the upcoming OS releases. And what if I ran into a bug without the hope of getting it fixed ever?

DiffFork

Similar to Changes, the last update of DiffFork is recorded for January 2011. The screenshots on the app’s homepage look promising but pretty much the same reasons as described above I did not bother to have a closer look.

Kaleidoscope

Visually, this is clearly the best app I have seen on OS X so far for the purpose of comparing files. However, in terms of functionality it is also one of the most limited solutions. In particular, Kaleidoscope does not support the comparison of entire folders and it also does not support in-place editing. There is also no support for merging.

But again, the presentation of comparison results and the usability of the available functionality is way ahead of the competition. Also, Kaleidoscope comes with the ability to compare images with each other.

While other tools in some cases require to get over more or less significant WTFs before I could comfortably work with them Kaleidoscope was the only app that I could intuitively work with from the first minute.

Kaleidoscope also comes with a command-line integration (CLI) that can be installed from within the app. It also provides recipes for an integration (using the CLI) with various SCM solutions.

Like some of the other apps mentioned in this article, it does not seem as if Kaleidoscope has been under significant development lately. The app has recently been acquired by Black Pixel and maybe it takes some time before the development can be ramped up again. At least, minor updates to the app have been released lately.

Another nice thing to say about Kaleidoscope is that it is possible to open several tabs within a single window with a file comparison in each, just like Beyond Compare can do. This makes it very convenient to switch from one comparison to another.

Conclusion

Again, this does by no means represent a conclusive summary of the market for file comparison tools on OS X. For example, I have not given KDiff3 another spin3.

Also, the Mac App Store offers a variety of file comparison utilities in exchange for a small amount of money. I did not have a closer look on any of these because none of them is natively supported by SourceTree and my primary motivation is to find the best solution in combination with SourceTree.

Last not least, I did not consider Araxis Merge because its price point is way beyond what I’d be willing to pay for a file comparison tool for my personal usage. It may even be worth the money4 but still that would be too much for me.

In the end, there is no clear winner for me. It may be worth asking why there isn’t a reasonably priced killer-app like Beyond Compare available for OS X. I fear that this is because the market for file comparison tools on OS X is just too small such that incentives for companies to heavily invest in this market simply do not exist.

In the end, I’m more or less grumpily settling for using Kaleidoscope. I need a file comparison tool and for the given purpose it seems like the best solution available. On the other hand, given the price it is hard to feel happy about this decision.


  1. For source code this is not such a big deal because you properly take care of formatting source code in a readable way, right? For pure text, however, this issue becomes apparent quickly and limits the usability of DiffMerge significantly.

  2. I remember that I visited the homepage of Changes more than a year ago and, as far as i can see, the released version was and is still 1.5.6.

  3. Mostly because I have already used it on Windows and decided that I don’t like it even on that platform.

  4. And from looking at the description on the web site it sure looks like it plays in the same ballpark as Beyond Compare. For the professional user this seems to be the tool of choice.

Comments