Thread (8 messages) flat view 8 messages, 2 authors, 2021-06-15

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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help