Re: xxdiff as a visual diff tool (shameless plug)

Paul Mackerras (
Mon, 25 Mar 2002 17:53:19 +1100 (EST)

Martin Blais writes:

> I was wondering if you've tried my tool xxdiff (shameless
> plug), it has the following features:

While we're in shameless plug mode, anyone who is working with two or
more kernel trees should have a look at dirdiff. The great thing
about dirdiff is that it compares from 2 to 5 directory trees and
shows you which files differ between the trees in a concise manner.
You can then select one of the files and display the differences for
that file between any two of the versions. You can also select
multiple files and then copy them from one tree to another.

I use this when Linus or Marcelo puts out a new patch. Using dirdiff
I can get a quick view of which files have been changed, added or
deleted. I can then quickly copy over anything where I don't need to
look too closely (e.g. stuff under fs or arch/ia64, for instance) and
have a close look at what changes have been made in other areas
(e.g. under arch/ppc, arch/i386 or mm).

In fact, I find a 3-way dirdiff useful in that situation - comparing
the previous Linus/Marcelo tree, the current Linus/Marcelo tree and my
tree. Different states of the file (such as modified in my tree and
unchanged in the Linus/Marcelo trees, unmodified in my tree and
modified in the latest Linus/Marcelo release, modified in both, etc.)
show up as different color patterns which are easily recognized.

Dirdiff displays an array of colored squares with one column per
directory tree and one line per file. For a given file, versions that
are the same get the same color. Each group of identical files gets
given a color ranging from green (newest) to red (oldest) based on the
most recent modification time of the files in the group. (In fact the
only reason why dirdiff is limited to 5 trees is that I thought that
any more than 5 colors in the green - red spectrum would not be
sufficiently visually distinct.)

Dirdiff also has features to make it easy to use in conjunction with
Bitkeeper or CVS, for example you can get it to ignore differences in
BK or CVS tags when deciding whether two files go in the same group.

The differences get displayed in a separate window as a diff -u but
with different colored backgrounds instead of - or + at the beginning
of the line. You can then do a merge; each line of difference has a
little checkbox, and if you check the checkbox, that line will be
changed in the merged file. The merged file is brought up in a window
which allows basic editing (insert, delete, cut/copy/paste, find)
before you either save the merged file or discard the merge.

Dirdiff is available from
and it's also a debian package (although I hear the debian version is
a little out of date).

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
More majordomo info at
Please read the FAQ at