git/list[1] front-page[2] threads[3] people[4] search[5] about
 

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
Previous: Jeff KingNext: Felipe Contreras
Message 3 of 14 in “xdiff: implement a zealous diff3”
  1. xdiff: implement a zealous diff3Felipe Contreras, Jun 13, 2021
  2. Jeff KingJun 13, 2021
  3. Felipe ContrerasJun 13, 2021
  4. Felipe ContrerasJun 13, 2021
  5. Junio C HamanoJun 15, 2021
  6. Elijah NewrenJun 15, 2021
  7. Junio C HamanoJun 15, 2021
  8. Felipe ContrerasJun 15, 2021
  9. Felipe ContrerasJun 15, 2021
  10. Elijah NewrenJun 15, 2021
  11. Jeff KingJun 14, 2021
  12. Felipe ContrerasJun 15, 2021
  13. Jeff KingJun 15, 2021
  14. Felipe ContrerasJun 15, 2021

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.