Commit Briefs

d8361df056 Neels Hofmeyr

strncat (neels/strncat)


6c6e6e508e Neels Hofmeyr

add test117



46093fc37f Neels Hofmeyr

remove stray blank line


10ae3a6560 Neels Hofmeyr

patience debug


a5de263314 Neels Hofmeyr

patience comments


9f9e0ab43b Neels Hofmeyr

cosmetic: patience: use local var 'r' for right atom


ca1af24580 Neels Hofmeyr

cosmetic: rename local var from 'r' to 'rc'


f5a254cc6e Neels Hofmeyr

debug fix in diff_data_init_subsection


a32272f07b Neels Hofmeyr

debug: fix missing quote


Branches

Tags

This repository contains no tags

Tree

.gitignorecommits | blame
LICENCEcommits | blame
READMEcommits | blame
compat/
diff/
diff-version.mkcommits | blame
include/
lib/
man/
test/

README

This is a collection of diff algorithms, to test various combinations.

The initial aim was to provide a faster diff implementation for got
(gameoftrees.org) with a BSD license, at the u2k20 OpenBSD hackathon.
A side effect could be improving OpenBSD's /usr/bin/diff utility.

At the time of writing, this is little more than a playground / benchmark basis
/ diff algorithm analysis platform. What could be done:
- add profiling and test series to rate diff algorithm combinations.
- interface with / merge into got.

The Myers and Patience Diff algorithm implementations found here are based on
the explanations found in these blog post series:
  https://blog.jcoglan.com/2017/02/12/the-myers-diff-algorithm-part-1/ ff.
and
  https://blog.jcoglan.com/2017/09/19/the-patience-diff-algorithm/ ff.
-- possibly the single most comprehensive explanations of these algorithms.
Many thanks for this valuable door opener!
The source code itself is not based on the code found in those blogs, but
written from scratch with the knowledge gained.

Compile:
  make -C diff

Test:
  make -C test/