jj/lib
Martin von Zweigbergk 1e657c5331 diff: add a histogram(-like?) diff algorithm
The current diff algorithm does a full LCS on the words of the texts,
which is really slow. Diffing the working copy when e.g.
`src/commands.py` has changes far apart takes seconds. This patch adds
an implementation inspired by JGit's Histogram diff. I say "inspired"
because I just didn't quite understand it :P In particular, I didn't
understand what it does when it finds non-unique elements. I decided
to line up the leading common elements on both sides of the merge. I
don't know if that usually gives good enough results in practice.

I'm sure this can still be optimized a lot, but this seems good enough
as a start. There is also many things to improve about the quality of
the diffs.
2021-03-31 22:15:36 -07:00
..
benches diff: add a histogram(-like?) diff algorithm 2021-03-31 22:15:36 -07:00
protos view: add tracking of "public" heads (copying Mercurial's phase concept) 2021-01-16 11:48:35 -08:00
src diff: add a histogram(-like?) diff algorithm 2021-03-31 22:15:36 -07:00
tests evolution: use index for filtering out ancestors of candidates in new_parent() 2021-03-16 23:43:44 -07:00
build.rs rustfmt: configure to group imports 2021-03-14 10:46:25 -07:00
Cargo.toml cargo: upgrade to protobuf 2.22.1 to avoid workaround for rustfmt::skip 2021-03-18 13:06:42 -07:00