patdiff

File Diff using the Patience Diff algorithm
README

Patdiff is an OCaml implementation of Bram Cohen's patience diff algorithm,
with a few extra conveniences for comparing code and config files:

outputs plain ASCII, ANSI color codes, or HTML

optional semantic diffing of numbers

good word-level diffing out of the box

And of course all the usual features:

  • recursive diffing of directories

  • extensively configurable output (markers, colors, location format, context)

  • whitespace-aware diffing

Installation

opam install patdiff

See
here
for Patdiff's opam package file.

Compiling from source

To build patdiff for local development, install its dependencies:

git clone https://github.com/janestreet/patdiff
cd patdiff
opam install --deps-only .

To compile, and optionally install, patdiff:

make
make install

Usage

patdiff old-file new-file

If you don't supply any arguments to patdiff, it will read diff-like
text from stdin and color it in the normal patdiff way.

The file ~/.patdiff is used as a config file if it exists. You can
write a sample config with the -make-config flag.

patdiff-git-wrapper

A simple wrapper is provided for using patdiff
as git's "external diff" tool. You can enable it with:

export GIT_EXTERNAL_DIFF=$(command -v patdiff-git-wrapper)

or

git config --global diff.external $(command -v patdiff-git-wrapper)

Documentation

More docs, including detailed API docs, are available
here.

Install
Published
21 Mar 2022
Sources
patdiff-v0.15.0.tar.gz
sha256=089e88efbbda5c7f1249d0b427336fa56679c52d7bc94b76a2bc7df8ade52d13
Dependencies
re
>= "1.8.0"
dune
>= "2.0.0"
ppx_jane
>= "v0.15" & < "v0.16"
patience_diff
>= "v0.15" & < "v0.16"
expect_test_helpers_core
>= "v0.15" & < "v0.16"
core_unix
>= "v0.15" & < "v0.16"
core_kernel
>= "v0.15" & < "v0.16"
core
>= "v0.15" & < "v0.16"
ocaml
>= "4.08.0"
Reverse Dependencies
bonsai
>= "v0.15.0"
osnap
< "0.3.0"