Implement a zealous diff3, or "zdiff3". This new mode is identical to ordinary diff3 except that it allows compaction of common lines between the two sides of history, if those common lines occur at the beginning or end of a conflict hunk. This is just RFC, because I need to add tests. Also, while I've remerged every merge, revert, or duly marked cherry-pick from both git.git and linux.git with this patch using the new zdiff3 mode, that only shows it doesn't segfault. (Though I also reran 10% of the linux remerges with zdiff3 under valgrind without issues.) I looked through some differences between --remerge-diff with diff3 and --remerge-diff with zdiff3, but those are essentially diffs of a diff of a diff, which I found hard to read. I'd like to look through more examples, and use it for a while before submitting the patches without the RFC tag. Elijah Newren (2): xdiff: implement a zealous diff3, or "zdiff3" update documentation for new zdiff3 conflictStyle Documentation/config/merge.txt | 9 ++++- Documentation/git-checkout.txt | 3 +- Documentation/git-merge-file.txt | 3 ++ Documentation/git-merge.txt | 32 +++++++++++++--- Documentation/git-rebase.txt | 6 +-- Documentation/git-restore.txt | 3 +- Documentation/git-switch.txt | 3 +- Documentation/technical/rerere.txt | 10 ++--- builtin/checkout.c | 2 +- builtin/merge-file.c | 2 + contrib/completion/git-completion.bash | 6 +-- xdiff-interface.c | 2 + xdiff/xdiff.h | 1 + xdiff/xmerge.c | 52 ++++++++++++++++++++++++-- 14 files changed, 107 insertions(+), 27 deletions(-) base-commit: 670b81a890388c60b7032a4f5b879f2ece8c4558 Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-git-1036%2Fnewren%2Fzdiff3-v1 Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-git-1036/newren/zdiff3-v1 Pull-Request: https://github.com/git/git/pull/1036 -- gitgitgadget