Re: [PATCH] xdiff: implement a zealous diff3
- From
Felipe Contreras <felipe.contreras@gmail.com>
- Date
- Jun 13, 2021, 18:00 UTC
- Message-ID
- <60c647c1d9b5c_41f452089@natae.notmuch>
- In-Reply-To
- <YMYnVWSEgxvKRU9j@coredump.intra.peff.net>
Jeff King wrote:
Show 16 quoted lines
> On Sun, Jun 13, 2021 at 09:31:55AM -0500, Felipe Contreras wrote: > > > From: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> > > > > "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 <u.kleine-koenig@pengutronix.de> > > --- > > > > 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.
Show 11 quoted lines
> 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