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. Change since v4: * None; just resending because v3 wasn't picked up. Changes since v3: * More fixes from Phillip. * Marked Phillip as the author of the first commit because he's written most the code now; gave myself a co-authored-by trailer on that commit. * Removed the RFC label since it's now passing our tests. Changes since v2: * Included more fixes from Phillip, and a new testcase Changes since v1: * Included fixes from Phillip (thanks!) * Added some testcases Elijah Newren (1): update documentation for new zdiff3 conflictStyle Phillip Wood (1): xdiff: implement a zealous diff3, or "zdiff3" 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 +- t/t6427-diff3-conflict-markers.sh | 90 ++++++++++++++++++++++++++ xdiff-interface.c | 2 + xdiff/xdiff.h | 1 + xdiff/xmerge.c | 63 ++++++++++++++++-- 15 files changed, 205 insertions(+), 30 deletions(-) base-commit: 4c719308ce59dc70e606f910f40801f2c6051b24 Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-git-1036%2Fnewren%2Fzdiff3-v5 Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-git-1036/newren/zdiff3-v5 Pull-Request: https://github.com/git/git/pull/1036 Range-diff vs v4: 1: 473fae82da1 = 1: 473fae82da1 xdiff: implement a zealous diff3, or "zdiff3" 2: 69f20a702b4 = 2: 409ae2bbd85 update documentation for new zdiff3 conflictStyle -- gitgitgadget