When reviewing comparison software, we’ve analyzed the following software functionality:
1. User Interface
Customized user interface – the ability to customize toolbars, menus and (optionally) switch between horizontal/vertical views of comparison panels.
Available toolbars, context menus – most comparison programs have all appropriate functionality always “at hand” with extensive toolbars and context menus.
Capabilities to save settings to file – this function allows the user to save current session settings in order to use it in future projects as well as across workstations.
Capabilities to save current project – this function allows the user to save current project data, including file paths, settings and work progress, to an external file. Typically, project files are saved with application-specific extensions (for instance, project.prg).
Support for multiple comparison projects – the ability to work on several comparison jobs concurrently within the main application window. Some applications which lack this feature, allow the user to open several application instances concurrently.
2. File Comparison
Side-by-side comparison – most comparison software provide for side-by-side comparison, with both files displayed in two opposite comparison panels. This view provides for efficient analysis of both files and allows the user to compare the file contents more easily.
Diverse comparison methods – most comparison software allow the user to compare the source and target files on the line-by-line basis. If the line in the target file has changed, it is colored in a specific way in the comparison panel. However, most comparison software also provide for in-depth analysis of text files, by allowing the user to implement char-by-char comparison. This method allows comparing all chars (symbols) within the text lines and highlighting the differences for each char. Similarly, some software contains word-by-word comparison functionality, allowing the user to compare all words in the target and source files.
Some comparison programs provide for “by-keyword” comparison as well. This method allows the user to analyze non-related text files with a user-defined set of keywords. The keyword statistics is available after the analysis is complete. Generally, “by-keyword” comparison is a fast way to review a pair of text files or learn what these text files are about.
Syntax rules highlighting – this ability is specifically useful for professional developers reviewing the changes in the source code. It provides for the highlighting of text areas specific for each programming language. Most comparison software allows the user to choose from a list of supported languages and technologies which can be applied to the current project.
Connecting lines – this ability allows the user to automatically draw lines between related lines in the compared files. The lines are typically drawn between the two (three) comparison panels and link similar lines in source and target files.
Synchronized scrolling – this ability allows the user to automatically align the similar lines in the compared files and scroll the two files “in the synchronized way”. It allows reviewing the two files more efficiently. However, if the file has been changed significantly, automatic alignment may not be done properly. In some comparison software, synchronized scrolling is used by default.
Three-way comparison – this functionality is available in the most advanced professional comparison software. It allows the user to compare three files concurrently: a “parent” (common ancestor file) and 2 file versions. This functionality is specifically useful for conflict reconciling and automatic merging of the files.
3. File Merging
Auto Merging – this ability allows the user to automatically merge differences in the files and detect “conflicts” (overlapping changes in source and target files).
Conflict Reconciling – this ability allows the user to effectively reconcile “conflicts” (overlapping changes) between the files by choosing the most appropriate behavior in each case/all cases: generally, the user can choose to keep/delete/copy the selected “conflict” lines.
Point-and-Click Merging – this ability allows the user to effectively merge differences in the source/target file by selecting the most appropriate behavior (keep/delete/copy lines). Generally, this function allows merging file differences and reconciling conflicts with a couple of mouse clicks.
4. Review & Edit
In-Panel Editing – this capability allows the user to edit the text directly in the comparison panel. Typically, the reviewed file can then be saved in the original format. Some programs also allow the user to open the compared text in a separate “edit” panel, providing all necessary formatting functionality for efficient text editing.
Line filters – this capability allows the user to set specific line filters, in order to display the lines of the selected type only.
Ignore options – this ability allows the user to ignore certain criteria when comparing files; typically, “ignore options” include: ignore “whitespaces” (space symbols at the end of the line), ignore case, ignore regular expressions, etc.
Regular expressions – regular expression is a text line, which matches a set of lines in the compared text. The user can apply regular expression in order to display/ignore lines of the selected type only.
Line wrapping – this ability allows the user to “wrap” the lines in order to display them completely in the comparison panel without horizontally scrolling the panel.
5. Folder Comparison
Folder synchronization – this ability allows the user to compare and synchronize folders. More information on folder synchronization can be found here.
Content comparison – this ability allows the user to compare the files within two (three) folders by their contents (applied to text files and some binary files).
Folder tree synchronization – this ability allows the user to compare entire directory trees, including all subfolders.
File filters – this ability allows the user to set specific file filters (by file extensions, part of the file name, etc.), in order to compare the files of the selected type only.
Byte-by-byte comparison – this ability allows the user to compare files within two (three) folders on byte-by-byte basis. This is the most profound way of comparing and synchronizing folders; in some programs, it takes several minutes to complete the comparison of folders with a large number of files.
Live statistics – this ability allows the user to have the comparison statistics of the current project always “at hand”. Some programs do not support live statistics capability, but allow the user to generate reports containing analytical and statistical information.
HTML/XML reports – this ability allows the user to generate reports containing analytical and statistical information, in HTML/XML format.
Unix diff – this ability allows the user to generate reports in Unix diff format.
Report preview – this ability allows the user to preview the current report before saving it to a file or printing it.
Folder snapshot – this ability allows the user to create the folder “snapshot” in XML format, containing the list of files in the compared folder.
7. Version Control integration
Version Control integration – this ability allows the user to integrate comparison software in Version Control environment, including CVS, Tortoise, Subversion systems.
Command line support – this ability provides command line interface for more efficient integration of comparison software in the current programming environment.