jj/lib
Martin von Zweigbergk 3c35dbace6 merge: use new diff algorithm for finding sync regions
With the histogram diff code from the previous patch, we can now start
using that for finding the "sync regions" in 3-way merge. That helps a
lot with the slow merging we had before this patch. `jj diff -r
9d540e9726` in the git.git repo drops from 22 s to 0.15 s with this
patch. (That commit is a rather arbitrary merge commit from aroun 5
years ago.)

With the new diff algorithm, the output of `jj diff -r 9d540e9726` in
git.git looks better if we find unchanged sync regions based on lines
than on words, so that's what I'm using in this patch. That's a change
compared the the LCS-based diff we used before this patch. I suspect
the reason that finding sync regions based on words works worse now is
not because of the change from LCS to histogram but because of the
change in how we define a word. My goal right now is mostly to make it
faster; I'll get back to refining the diff result later.
2021-03-31 22:16:19 -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 merge: use new diff algorithm for finding sync regions 2021-03-31 22:16:19 -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