git/xdiff
Johannes Schindelin 92b7de93fb Implement the patience diff algorithm
The patience diff algorithm produces slightly more intuitive output
than the classic Myers algorithm, as it does not try to minimize the
number of +/- lines first, but tries to preserve the lines that are
unique.

To this end, it first determines lines that are unique in both files,
then the maximal sequence which preserves the order (relative to both
files) is extracted.

Starting from this initial set of common lines, the rest of the lines
is handled recursively, with Myers' algorithm as a fallback when
the patience algorithm fails (due to no common unique lines).

This patch includes memory leak fixes by Pierre Habouzit.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-01-07 13:35:44 -08:00
..
xdiff.h Implement the patience diff algorithm 2009-01-07 13:35:44 -08:00
xdiffi.c Implement the patience diff algorithm 2009-01-07 13:35:44 -08:00
xdiffi.h Implement the patience diff algorithm 2009-01-07 13:35:44 -08:00
xemit.c Allow alternate "low-level" emit function from xdl_diff 2008-10-25 12:09:31 -07:00
xemit.h Allow alternate "low-level" emit function from xdl_diff 2008-10-25 12:09:31 -07:00
xinclude.h War on whitespace 2007-06-07 00:04:01 -07:00
xmacros.h War on whitespace 2007-06-07 00:04:01 -07:00
xmerge.c xmerge.c: "diff3 -m" style clips merge reduction level to EAGER or less 2008-08-30 19:41:43 -07:00
xpatience.c Implement the patience diff algorithm 2009-01-07 13:35:44 -08:00
xprepare.c Implement the patience diff algorithm 2009-01-07 13:35:44 -08:00
xprepare.h War on whitespace 2007-06-07 00:04:01 -07:00
xtypes.h War on whitespace 2007-06-07 00:04:01 -07:00
xutils.c Remove unreachable statements 2007-11-15 21:23:47 -08:00
xutils.h War on whitespace 2007-06-07 00:04:01 -07:00