There are a lot of good utilities out there, but every once in a while one comes along that stands out above the rest. Such programs provide a unique combination of usefulness, reliability, quality, value, and a certain "wow" factor that, in my opinion, earns them the title of Insanely Great Software. This is certainly true of one of my long-time favorite utilities, Beyond Compare® from Scooter Software.
At its core, Beyond Compare is a file and folder comparison and synchronization utility. As a developer, I rely on this kind of utility many times a day to sync my backup folders with their corresponding live folders, to update my deployment folders with the files from the latest build, to compare 'before' and 'after' results during testing, and a variety of other such tasks. Beyond Compare quickly became my favorite for its intuitive interface, ease of use, and great features.
Folder Comparison and Synchronization
Beyond Compare's user interface consists of a pair of side-by-side treeviews showing folders, sub-folders and files. The display, which refreshes rapidly even for long lists, drills down the folder hierarchy from whatever drive or folder you have selected as the root on each side. The intelligent use of color makes it easy to quickly spot matches, mismatches, and orphans between the two sides.
You can choose to view all files or only files that are different on one side than on the other. If you choose to view only files that are different, there are several choices involving various combinations of mismatches, orphans, and files newer on one side than on the other. Toolbar buttons enable you to quickly select the desired view and to expand or collapse all the sub-folders in the view, among other things. As you would expect, you can expand and collapse individual folders by double-clicking them in the treeview.
Other buttons on the Beyond Compare toolbar enable you to easily synchronize two folders by copying newer and unmatched files from one side to the other. Synchronization can be done either en masse or for individually selected folders and/or files.
Zip and FTP
Beyond Compare treats Zip files as folders, enabling comparison and synchronization between a folder and a Zip archive, or even between two Zip archives, as though they were all actual folders. It can also connect to an FTP site on one or both sides of the comparison, thereby extending its functionality beyond the local machine or network.
Sessions and Explorer Integration
If you find yourself frequently comparing the same pairs of folders, Beyond Compare lets you save each set as a named session, which you can then open from a drop-down list the next time you need it. Integration with Windows Explorer (optional, but recommended IMO) enables you to select two folders in Explorer and launch Beyond Compare from the right-click menu. Although I have several dozen saved sessions I use all the time, I still find the integration with Explorer extremely useful for ad hoc comparisons and synchronizations.
File Compare and Editing
Beyond its core functionality, one of Beyond Compare's most useful features IMO is the built-in file comparison and editing capability. With any two files selected, you can launch a file comparison with a just click or two. This gives you a side-by-side, line-by-line comparison of the two files in a separate window, again using color to highlight the differences. The basic file comparison is designed for text files, which of course also works great for Visual FoxPro® program (PRG) files, INI files, header (.h) files, and the like. Plug-ins are available for viewing and comparing other file types, including a Hex viewer for binary files and an image file viewer for popular graphics file types.
The file comparison window has its own toolbar, which includes one-click buttons to immediately jump to the next or previous difference without scrolling. A visual representation of the file runs down the left-hand side of the file comparison window and uses bands of color to illustrate where areas of difference occur. I find this very intuitive and especially useful when working with large files that have only a few differences. The file comparison utility also enables you to edit the files in situ; you can edit individual lines on either side and/or copy a line or a group of selected lines from one side to the other.
Another plus is that Beyond Compare can be licensed to the person, not just the machine. The license states that "One registered copy of the Software may either be used by a single person who uses the software personally on one or more computers, or installed on a single computer used by multiple people, but not both." As an independent developer who works primarily on two machines (a desktop PC and a laptop PC) not shared with anyone else, I value this kind of license agreement a lot.
Beyond Compare can also be automated -- that is, run without a user interface -- via scripting. Rick Schummer of White Light Computing is currently doing some interesting work in this area. Look for his upcoming Class Compare utility for Visual FoxPro, which takes advantage of Beyond Compare's scripting capability to implement some very cool reporting.
When you add it all up, Beyond Compare is a really great piece of software. Go download the latest version and see for yourself.
Beyond Compare is a registered trademark of Scooter Software, Inc. Visual FoxPro is a registered trademark of Microsoft Corp.
['Insanely Great Software' is an occasional series about some of my favorite programs and utilities.]