Usage

File Arguments

Diffing Files

$ difft sample_files/before.js sample_files/after.js

Diffing Directories

$ difft sample_files/dir_before/ sample_files/dir_after/

Difftastic will recursively walk the two directories, diffing files with the same name.

The --skip-unchanged option is useful when diffing directories that contain many unchanged files.

Reading stdin

You can read a file from stdin by specifying - as the file path.

$ cat sample_files/before.js | difft - sample_files/after.js

Files With Conflicts

(Added in version 0.50.)

If you have a file with <<<<<<< conflict markers, you can pass it as a single argument to difftastic. Difftastic will construct the two file states and diff those.

$ difft sample_files/conflicts.el

Language Detection

Difftastic guesses the language used based on the file extension, file name, and the contents of the first lines.

You can override the language detection by passing the --language option. Difftastic will treat input files as if they had that extension, and ignore other language detection heuristics.

$ difft --language cpp before.c after.c

Options

Difftastic includes a range of configuration CLI options, see difft --help for the full list.

Difftastic can also be configured with environment variables. These are also visible in --help.

For example, DFT_BACKGROUND=light is equivalent to --background=light. This is useful when using VCS tools like git, where you are not invoking the difft binary directly.

Exit Codes

2: Difftastic was given invalid arguments. This includes invalid usage (e.g. the wrong number of arguments) as well as paths that difftastic cannot read (e.g. non-existent paths or insufficient permissions).

1: When called with --exit-code, difftastic will return an exit code of 1 when it finds any syntactic changes (in text files) or byte changes (in binary files).

0: All other cases.