DiffDog provides the following main features.
A file comparison in DiffDog is made in a File Comparison window. Files to be compared are opened in separate panes of a File Comparison window by browsing in Windows Explorer-type windows or from drop-down lists of previously opened files. DiffDog remembers file comparison pairs, and, when you select a file for comparison, can provide a list of files with which the selected file was previously compared.
Files can be compared as text or as structured XML. You can also compare binary files, however DiffDog cannot—with the exception of Microsoft Word (*.doc or *.docx) documents— display the changes within binary files, it can only detect whether or not a pair of binary files is equal. A large range of navigation controls enables you to move easily among differences.
A wide range of comparison options are available, thus allowing you to define what aspects of files to compare and what aspects to ignore. Comparison options include settings for how whitespace and blank lines should be treated, whether case-sensitivity should be considered or not, whether differences should be indicated by line or character, whether certain node types, namespaces, and the order of attributes and/or elements should be ignored, whether entities should be resolved, etc.
If a file is modified outside DiffDog while it is open in a File Comparison window, DiffDog can watch for changes and reload the file if required.
Differences within files are indicated with background colors, and corresponding differences in the two panes are joined with lines, thus making visual analysis easier. Note that this does not apply to binary files. Vertical and horizontal scrolling of the two files in Comparison windows can be synchronized. This enables corresponding differences always to be displayed simultaneously.
With DiffDog Enterprise Edition, you can also perform three-way file comparisons (this is not applicable to Word files). Such comparisons can be used to merge differences from two files into a third one, see Three-Way Comparisons.
After you have compared a file pair, files can be edited and saved directly within File Comparison windows and you can specify whether and how backups of files you edit should be kept. Comparisons can be done dynamically as you edit.
DiffDog provides high-level find-and-replace functionality, which also includes support for regular expressions. Differences between files can be merged, i.e. a different block in one file can be copied to replace the corresponding block in the other file. Editing and merging changes in either file can be undone an unlimited number of times.
A directory comparison in DiffDog is made in a Directory Comparison window. The directories to be compared are opened in separate panes of a Directory Comparison window. DiffDog provides a drop-down list of recently compared directories from which to select. Additionally, once a directory is selected to be opened in one pane, DiffDog can provide a list of directories with which that directory was previously compared; as a result previously compared pairs can quickly be opened in a Directory Comparison window. You can define filters to specify what file types to compare and what file types to ignore in a directory comparison.
Directories can be compared on the basis of the sizes and timestamps of files within them (Quick Comparison Mode), or on the basis of the contents of files. The compared directories are displayed as expandable/collapsible trees and show details such as file size and last modification date. The view of the compared directories can be configured on the basis of the comparison results. For example, equal directories and files can be hidden, and only non-equal folders and files shown. Differences between directories and files are indicated with color-coding and easy-to-identify icons.
If a directory is modified outside DiffDog while it is open in a Directory Comparison window, DiffDog can watch for changes and reload the directory if required. Non-equal directories and files can be copied from one pane (directory) to the other. You can also synchronize the directories, that is, copy all missing or updated files from one directory to the other or delete unneeded files. File comparisons can be started directly from within a Directory Comparison window by double-clicking a file in a directory.
A comparison of Microsoft Word documents is made in a Word Comparison window. Please note that Microsoft Word must be installed on your computer and that you cannot run a 64-bit version of DiffDog together with a 32-bit version of Microsoft Word, or vice versa, if you want to compare Microsoft Word documents in DiffDog. DiffDog opens two instances of Microsoft Word side by side and displays an empty document in both of them. Documents are opened separately in the left and right pane by clicking the Open button in the respective toolbar or choosing a previously compared document from the drop-down list box.
An XML schema comparison is made in an XML Schema Comparison window. The XML schemas to be compared are opened in two components of the XML Schema Comparison window. Occasionally, you will have to set a root element for the comparison. The root elements on both sides are mapped and DiffDog tries to find and map corresponding (child) elements. The mappings can be changed manually at any time.
You can save the mapping and the settings of an XML Schema comparison in a file. If such an XML Schema comparison file is modified outside DiffDog while it is open in an XML Schema Comparison window, DiffDog can watch for changes and reload the file if required. DiffDog also allows you to generate XSLT Stylesheets and MapForce Mappings for the compared XML Schemas. The XSLT Stylesheet or MapForce Mapping, respectively, can then be saved or, for XSLT Stylesheets, opened in XMLSpy®.
A database schema comparison enables you to compare objects of two different database schemas, in terms of their structure or size. Database objects that can be compared include tables, columns, views, functions, and stored procedures. Comparison works differently for tables, as opposed to views, functions, or stored procedures. Namely, in case of tables, the comparison results report the structural differences (such as different columns, constraints, data types, and so on). In case of views, functions, and stored procedures, the comparison results inform you if the size of the object is the same or different in database A (left-side of comparison) as compared to database B (right-side of comparison). For more information, see Comparing Database Schemas.
You can compare data from two or more tables or columns side-by-side. The objects to be compared can either belong to the same database, or reside in two different databases. A database comparison is similar to file comparisons; that is, it involves a "left" component and a "right" one. A "component" is just a representation of the database structure from where you can conveniently select the tables or columns that are to be compared.
After comparing database data, you can optionally merge differences either from left to right, or from right to left. It is possible to merge all differences as one batch, or you can display the differences for each table in a data grid, and then review and merge each difference individually at row level. For more information, see Comparing Database Data.
Multiple comparison windows (directory, file, XML Schema, database schema, and database data) can be opened in DiffDog at a time. Directory synchronization is done in a dialog box that can be opened from the Directory Comparison window after you have run a directory comparison, and which allows you to customize the default synchronization settings according to your needs.
The GUI has user-friendly menu layouts, intuitive toolbar icons, right-click quick menus, and a status bar that summarizes the results of comparisons. You can customize the look of Directory Comparison windows, File Comparison windows, XML Schema Comparison windows, Database Schema Comparison windows, and Database Data Comparison windows, including the background colors that are used to highlight differences. Files can be viewed in Text View or Altova's Grid View.
The Text View of documents in File Comparison windows provides line-numbering, source-folding (i.e. expandable and collapsible elements), indentation guides, bookmarking, syntax coloring, and whitespace and linefeed indicators. Syntax coloring can be adjusted according to file type.
Grid View displays structured documents, such as XML documents, in a tabular grid. This enables you to carry out large-scale changes easily (for example, inserting a column would insert the node represented by the column in all the nodes represented by the rows of the grid).
DiffDog can be called from the command line. The application can be integrated with any source control system which provides the possibility to set up a path to the DiffDog executable.