Table of Contents
This is the official home of xxdiff, a graphical file and directories comparator and merge tool.
xxdiff is provided under the GNU GPL open source license. It has reached stable state, and is known to run on many popular unices, including IRIX, Linux, Solaris, HP/UX, DEC Tru64. It has been deployed inside many large organizations and is being actively maintained by its author (Martin Blais).
xxdiff was (and probably still is) tested daily in a merge reviewing/policing context by more than 50 engineers at discreet, and since this task is a significant part of their development process, many of the features are a direct result of suggestions from these people while the author was working there.
xxdiff does not support comparing files encoded with Unicode. Also, it does not support inline editing of the diffed files. If you need these features, you could try emacs or Meld (although both of these lack some of the most interesting features of xxdiff).
Source code can be found the public Git repository, here:
There are no releases. Pick up the source for from Github.
A complete Qt4 port (which works on the Mac) has been done by Alexandre Feblot (alexandre dot feblot at gmail dot com). This forms the basis for versions 4.x of xxdiff as of November 2010. Some notes about the Mac OS X build:
On OSX, a Qt bug (http://bugreports.qt.nokia.com/browse/QTBUG-9271) affects rendering performance. As a workaround you can use the much faster "raster" graphics engine by either
using the --graphicssystem raster option
defining this environment variable in your terminal:
QT_GRAPHICSSYSTEM=rasterThis engine has a couple of drawbacks (it will not refresh the display during window resizing, and will dump warning lines when opening native OSX dialogs like colors chooser or file selection dialogs), but it's worth coping with them anyway.
A recent Mac OS X binary build is available for download here:
An recent Windows 7 port of version 4.0 has been done by Rene J.V. Bertin (it's ifdef'ed).
An old Windows build for 2.9 (with some minor bugs) and based on the qt3 version can be found here:
No support is offered though. Someone should probably port the newer qt4 code to Windows though, that would be worthwhile.
xxdiff comes with a bunch of wrapper Python scripts that invoke xxdiff in creative ways. The author has been using these for a long time now and decided for version 3.0 to clean them up and make them a little more generic so everyone can use them. As of version 3.2, the standalone scripts have been refactored a great deal, to share code together and to make them more stable. All this code is now distributed with xxdiff, in an xxdiff Python package, which you can leverage to build your own file transformation scripts around xxdiff.
See the document Helper Scripts for xxdiff for full details.
The scripts are available in the xxdiff distribution. To install them and the accompanying Python package, use the standard distutils procedure:
su - # before root cd xxdiff-3.x python setup.py install
Other tools can be found in the distribution under the tools/ directory (CVS, ClearCase, etc.).
Packages are available for some specific operating systems. Here are links to the relevant pages. The author does not publish binaries anymore.
Build dependencies are:
Runtime dependencies are:
xxdiff is known to build and work on a great majority of UNIX platforms where Qt works, including Mac OS X.
Copyright (C) 2001-2004 Martin Blais. All Rights Reserved.
This code is distributed under the GNU General Public License;
Martin Blais <blais@furius.ca>