BEST COMPARISON TOOL
Our award for the best comparison tool category is one of our very favorite programs in the whole world: Beyond Compare.
Beyond Compare is a shareware product released by Scooter Software, priced very reasonably (normally $30, as of March 18th, 2005). A 30-day trial version is available on the program home page.
The license terms for the program even allow you to use it on multiple home or work computers, which is an unusually nice gesture - kudos to Scooter Software for this approach.
While there are a lot of file and folder compare/merge/sync tools on the market to choose from, and while there is still room for some improvement in Beyond Compare, no other tool comes even close to it in terms of total user experience.
Beyond Compare easily wins our award for Best Tool in its Class.
We were proud to be able to offer a 50% discount to all DonationCoder.com members through the end of March, 2005 (now expired).
WHY YOU NEED A COMPARE TOOL
Before we go into the feature set in Beyond Compare, we need to say something about the importance of having a good File&Folder Compare/Merge/Synchronize Tool. Chances are if you're reading this review you're a software lover, but you probably don't have a compare tool installed on your computer. Not many people realize how important such a tool is in a whole variety of situations.
Have you ever downloaded an update of some program/package full of files and wondered what's been changed since the last release you have sitting on your computer? Do you work with text files and ever lose your place and forget which is the latest file, and wonder what the differences are? Do you keep copies of deep directory trees and want to just add the new files to your backups?
Or maybe you downloaded some files at some point, and made some changes to them. Now a new release is out, but of course it doesn't have your changes in it, so you want to compare your modified old version with the new files and merge your changes into the new version.
Or maybe you've been editing some source code file or html web page file and suddenly find you've messed up the file somehow, but can't remember how - and you want to be able to compare the file against a prior known working version to identify the new changes that could be at fault. We all know to make backups - but what happens when something goes wrong and you need to compare your backup with your current nonworking version? That's where a compare/merge/sync tool comes in.
Almost everyone could benefit from a file&folder compare/sync tool in one way or another, but certain people, like people who work with programming language source code files, are simply masochists if they work without one.
A DREAM FEATURE SET
It's impossible to do justice to the entire feature set of Beyond Compare - there's just too much to rave about. But we'll try to highlight some of our favorite things that Beyond Compare does especially well (click images for larger pictures):
||If you use a file manager a lot, whether it be windows explorer or one of the commercial file browsers, you'll love the way Beyond Compare integrates into the right click menu. Select a file or folder, right click, and choose "Select as Left Side", then go to the other folder and say "Compare to." Beyond compare then quickly launches and displays the folder or file comparison with the left and right sides selected.|
||There are two main kinds of comparisons you will be spending your time doing in Beyond Compare, comparing folders and comparing files. Beyond Compare handles both of these seamlessly, and one of the nicest things about it is how easy it is to move around the folder trees while the program keeps the sides synchronized. We love the colors and the icons used to indicate folder and file differences - you'll be able to tell at a glance not just which files are older, newer, different, but also very usefully be able to see which folders have "orphans" which is a common way that directory trees can differ.|
| Synchronization Plus
||Synchronization is a pleasure to use, you can configure a wide variety of options for deciding what exactly synchronization should take into consideration, and after providing you a summary of what is about to take place, Beyond Compare flawlessly proceeds to copy, replace and even delete (if configured to do so), in order to synchronize folders trees. But in addition to comparing and synchronizing folders, you can perform standard folder operations from within Beyond Compare, like moving, renaming, deleting, copying outside of the tree, adjusting file properties, etc. In fact, due to the nice "painting" method of selecting files BC supports, some of these file and folder maintenance operations are actually more convenient to do in Beyond Compare then they are in a Full File Browser. These are the kinds of things that makes Beyond Compare such a joy to use.|
||Merge operations (copying blocks between the files) is intuitive, and multi-level undo is supported should you change your mind. You can also edit lines manually - but making more than minor single line edits is inconvenient, and the lack of in-place editing is the one achilles heal of Beyond Compare, as we discuss in more detail later. Like most file compare/merge/sync tools, Beyond Compare offers some search functionality, easy navigation between differences found. But like most things Beyond Compare takes these operations beyond the norm; you'll find regular expression searching, full search and replace functionality, and other niceties. There's also a wide variety of options regarding whether to display the entire files side by side, or only changes, or changes with context.|
|Alignment (flash movie)
||Our experience is that alignment of differences in Beyond Compare is excellent. It automatically displays shaded gaps in files in order to have both sides always aligned as best as possible, so that two corresponding lines are always side by side. We've found this is usually better than the approach taken by Araxis Merge which does not use gaps but instead draws arrows to show alignment, but you might want to try Araxis to get a feel for an interesting alternative. With both file comparisons and folder comparisons, Beyond Compare has a very easy to use manual alignment function, which allows you to override the automatic alignment function in the program and specify specific alignment points between the files. Its a very fun feature and we love how it seamlessly adapts to your manual alignment corrections.|
|Multi-Selections (flash movie)
||You are probably familiar with standard methods of selecting multiple items in windows. You can click to start and shift click to mark the end of a block; and you can ctrl click items one at a time to pick a bunch of items. Beyond Compare supports these of course but it also supports an innovative method by which you can simply hold the mouse down and drag to "paint" a sequence of folders or lines in a file, and then use the control key to repeat the process, selecting multiple non-contiguous blocks of files, folders, or lines inside files. It's a very elegant feature.|
||This is my favorite feature in Beyond Compare. Whenever you tell Beyond Compare to do something that would involve a potentially destructive file/folder operation or to save file changes, you're always presented with a wonderfully concise interactive summary dialog describing what Beyond Compare is about to do. The value of this, especially when performing big operations cannot be overstated. It will save you from making mistakes, and it's often quite useful just to use this feature as a nice way to get summaries of changes. These confirmation dialogs are perfect examples of good user interface design. If you've changed both files in a file comparison screen, and you click save or close, you'll get a little confirmation dialog which is split down the middle. You are asked for each side of the side-by-side files whether you want to "save changes" or "discard changes". This approach takes much of the risk out of playing with the program, because you know that you're going to get a nice summary of what's going to happen before you do something stupid.|
|Filters, Exclusions, and Display modes
||You'll have at your disposal a great variety of ways to control what you see in the comparison windows, and how the information should be displayed. A very friendly drop down box on the toolbar clearly lays out a variety of choices like "Mismatches but no Orphans", "Only Left Side Newer" etc. You definitely get the impression while using the program that it has been developed over the years to respond to the real needs of users. In addition to filters based on differences, you have independent control of filters based on file types and extensions; these filters are very easy to adjust and can be wonderfully useful in narrowing down the view to what you are interested in. Furthermore they can be extremely helpful in narrowing down the files that are to take place in a synchronization or copy operation. Like most settings your choices can be save into a session configuration for later reuse. You can also mark folders and files as excluded from comparison/synchronization. As with all features in Beyond Compare, this feature is a joy to use and can greatly aid in dealing with situations where certain folders should not be part of a synchronization operation.|
Quick vs. Detailed Compare
Another nice feature of Beyond Compare is that it is smart about differences in files and folders. If you have two huge directory trees of files, doing a detailed crc-based comparison of all the files could take quite a bit of time. So by default Beyond Compare does a preliminary comparison of folder structures and indicates obvious differences; at any time you can ask it to do a full file-by-file binary (or text-based rule) comparison on all files or just a subset of them in order to find differences in files that appear on first evaluation to be equivalent.
I think it was about 15 seconds after seeing the ftp comparison abilities of Beyond Compare that I registered my copy several years ago. Basically Beyond Compare is able to connect to a remote ftp server and treat it exactly as if it were another local folder. The interface is exactly the same, and the same operations are supported. Its a very very elegant way to synchronize with a remote directory. There are other ftp clients that support synchronization, and some of these support some functionality that Beyond Compare doesn't, like secure ssl connections, etc. However a good example of something amazing that Beyond Compare can do is allow you to very easily activate a filter to hide certain file extensions, and skip those during synchronization. The ease of performing these kinds of adjustments makes Beyond Compare a great tool for ftp synchronization. I have used the ftp synchronization features quite a bit while working on the DonationCoder.com website and it works great - being able to tag folders as "excluded" from synchronization was also a life saver. The only trouble i encountered was a tendency for Beyond Compare to temporarily lose the connection quite often for unknown reasons, though it reconnects without aborting its operation so the inconvenience is minor. Beyond Compare's unique ability to start with a quick comparison and move to a detailed comparison on demand is critical to being able to work efficiently in ftp mode.
Multithreaded Background Processing
Another way that Beyond Compare stands out from the competition is the seamless way it performs long operations in the background, and let's you keep working and exploring folders as the file+folder operations are completing. Beyond Compare uses a log window on the bottom of the screen that displays a history of all operations as they are occurring. This may not be a big deal for quick copies of a few files, but if you find yourself copying or comparing hundreds of megabytes or files, it can be very helpful. This is especially useful when operations are being performed with a remote ftp server. And because progress is displayed in this log window, you are free to keep browsing folders and files will prior operations are ongoing.
||If you have some pairs of folders and files that you need to compare often, you'll absolutely love the Session system in Beyond Compare. It will remember directories, and all sorts of options for what to display and how, that you can easily recall when you want, or invoke via commandline or shortcut. This can be a life saver, especially for dealing with remote ftp synchronizations, since Beyond Compare remembers all information about login information, last directory, etc.|
|Plug-ins and Rules
||While Beyond Compare is clearly made for text file operations, it can also be used to compare raw binary (hex) files; plugins (free) exist for comparing columnar data and mp3 files, and an sdk is available for programmers who want to create their own new plugins. In addition, comparison "rules" can be set up to launch external applications to process different kinds of files and produce temporary plaintext files suitable for simple comparison; user submitted rules are available for performing a wide variety of comparisons including html processors, pdf files, ms word files, java decompilers, etc.|
IT JUST "FEELS" RIGHT
Sometimes you come across a program that seems to be one step ahead of you, anticipating your need and surprising you by implementing features you cross your fingers and wish for when you go looking in the options dialog. Such programs are rare, and when you find one it's like making a new friend.
Beyond Compare is one of those rare gems that doesn't just blow the competition away in terms of features, but manages to pack all of these features into a user interface that is a joy to use. This is not an inconsequential issue or a trivial thing for a program to get right.
When we review programs at DonationCoder.com we look for programs that get both the feature set and the user interface right. It is simply not enough to make a powerful program - in fact the more powerful and complicated the program, the more important it is that the user interface is well designed and not overwhelming or confusing. Try some of the programs that compete with Beyond Compare (they are listed in the left sidebar) - you'll see that it's not easy to present all of the information needed in a folder comparison view, and not easy to present all of the appropriate actions and options to the user.
Your views about what constitutes the perfect user interface may differ from ours; to give you a better idea of how we tend to view user interface issues we've prepared a short summary of our thoughts on what makes a good user interface.
No matter what tool you choose for doing file and folder comparisons, it's going to take you a little bit of time to learn to use the program. The difference with Beyond Compare is that the more you use it, the more you love it. We've been using it for several years now on a regular basis and we're still impressed by how well designed the program is, and how it seems to supernaturally anticipate your needs.
COMPARED TO THE COMPETITION
There are a lot of wanna-be compare tools. Most of these we have found to be lacking in the functionality we have come to expect from Beyond Compare. Two other comparison tools, however, deserve special notice:
Araxis Merge is a very expensive ($169-$269 as of March 18th, 2005) comparison tool targeted at enterprise-level computer programmers. It's one of the few tools that is capable of doing 3-way comparisons; it's hard to think of a scenario when you need to do a 3-way compare, but if you find yourself in need of this feature, Araxis is impressively good at it. Araxis also has a nice clean interface, good shell integration, and the best in-place editor of any compare tool that we've ever tried (this is Beyond Compare's only weakness, as discussed later). As slick as Araxis Merge is, it's awfully hard to justify it's price, and it's folder compare&sync functionality is inferior to that of Beyond Compare.
WinMerge is an actively developed open source (free, donations optional) visual comparison tool for windows. It is a serious tool with a strong feature set, a reasonably good user interface, and an up to date manual. It cannot compete with the powerful folder compare and synchronization functions found in Beyond Compare, but it does have nice file compare functions including in-place editing, so you might want to install winmerge for this reason alone. While it lacks some of the polish and intuitive pleasure that Beyond Compare brings to the table, it's a commercial-quality tool that is constantly improving, and it definitely deserves your serious consideration as an Open Source alternative to commercial compare tools. A good secondary tool to have in your toolbox.
ROOM FOR IMPROVEMENT
There is really only one thing about Beyond Compare that stands out as obviously needing some real improvement, and that is the lack of in-place editing.
When comparing files, Beyond Compare offers great facilities for synchronizing content from one side to another. But if you actually want to manually edit some text in one of the windows, you're going to confront the one flaw in Beyond Compare. The only way to edit a line manually is to select it and then double-click it at the bottom of the screen, or else right-click and ask Beyond Compare to open up the file for editing in a 3rd party text editor.
TIP: if you have a nice text editor like UltraEdit, do yourself a big favor and take the time to configure Beyond Compare to work with it, ex. Options->OpenWith->"Uedit32.exe %f -l%l".
The approach that other comparison tools have taken is to support in-place editing, which basically means you can just perform text editing in the file windows as if you were using a word processor. This is a much much more natural way to make changes, and the lack of an in-place editor makes Beyond Compare poorly suited for tasks that require heavy manual editing during the synchronization process. In practice we have found that we rarely do substantial editing during compare&merge work, and tend to do our editing in a dedicated text editor, but if you plan to spend most of your time doing file comparisons instead of full folder&file comparisons, and would like to do substantial manual file editing during the compare&merge process, you may find this deficiency to be a show stopper. [editors note: see the next section for some exciting news]
Some other things that would be nice to see in a future version might include support for secure ftp protocols like ssl/tls/sftp, and native support for comparing Microsoft office documents and html files. In large files the thumbnail view can require a lot of scrolling - we think there should be an option to have it display a zoomed-out view of all differences.
A SURPRISE ANNOUNCEMENT: VERSION 3 !
We talked to Scooter Software about the lack of an in-place editor recently, and received some surprising and exciting news. Version 3 of Beyond Compare is well on it's way to release, and includes full in-place editing support, as well as some other nice new features. Frankly we're not too sure what other features there are left to add, but the news about in-place editing practically made us jump for joy. The icing on the cake is that Scooter Software has informed us that anyone purchasing Beyond Compare now will get a free upgrade to version 3 when it is released.
There is a nice official forum at Scooter Software where you can discuss tips and tricks, and perhaps post some feature requests for version 3.
No power user should be without a File&Folder Comparison tool, and they don't get any better than Beyond Compare. And with the announcement that version 3 is coming soon and will include in-place editing, the decision to choose Beyond Compare for this award was an easy one. We use it, we love it, we can't wait for the next version. We've actually been using it quite a bit to help us maintain this web site.