Difftastic is an experimental structured diff tool that compares files based on their syntax.
See the manual to get started.
Difftastic supports the following languages:
If a file has an unrecognised extension, difftastic uses a line-oriented diff.
Performance. Difftastic scales relatively poorly on files with a large number of changes, and can use a lot of memory. This might be solved by A* search.
Display. Difftastic has a side-by-side display which usually works well, but can be confusing.
Diff accuracy. Some delimiter moves are currently ignored (see #30).
Integration. Difftastic only has limited support for git and mercurial today.
Patch files. If you want to create a patch that you can later apply,
use diff
. Difftastic ignores whitespace, so its output is
lossy. (AST patching is also a hard problem.)
Difftastic is open source under the MIT license, see LICENSE for more details.
Files in sample_files/
are also under the MIT license unless stated
otherwise in their header.
The wiki includes additional notes on alternative diffing techniques and tools.