Re: [PATCH] xdiff: implement a zealous diff3
From: Felipe Contreras <hidden>
Date: 2021-06-13 18:03:34
Jeff King wrote:
On Sun, Jun 13, 2021 at 09:31:55AM -0500, Felipe Contreras wrote:quoted
From: Uwe Kleine-König <redacted> "zdiff3" is identical to ordinary diff3, only it allows more aggressive compaction than diff3. This way the displayed base isn't necessary technically correct, but still this mode might help resolving merge conflicts between two near identical additions. Signed-off-by: Uwe Kleine-König <redacted> --- I'm re-sending this patch from 2013 because I do think it provides value and we might want to make it the default.I take it you didn't investigate the segfault I mentioned.
I don't know how I was supposed to investigate the few segfaults you mentioned. All you said is that you never tracked the bug.
Try this:
commit=a5170794372cf1325710a3419473c91ec4af53bf
for style in merge diff3 zdiff3; do
git reset --hard
git checkout $commit^1
git -c merge.conflictstyle=$style merge $commit^2
done
The first two are fine; the zdiff3 one segfaults within the xmerge.c
code.I can reproduct the segfault, and here is a simpler way to reproduce it: (I have a hacked version of diff3 until merge-file learns how to use merge.conflictstyle) cat >b <<EOF A EOF cat >l <<EOF A B C D E F GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG H I EOF cat >r <<EOF A b C D E F GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG H i EOF $git merge-file --diff3 -p l b r -- Felipe Contreras