Web lists-archives.com

Re: Merge behavior with merge.conflictStyle diff3




On Tue, Dec 18, 2018 at 03:34:20PM -0200, Adilson de Almeida Junior wrote:

> I guess, most times the second behavior is the expected: two conflict
> hunks, not only the divvergent pieces (this case, the second line) of
> them. By the doc:
> 
> merge.conflictStyle
> 
>     Specify the style in which conflicted hunks are written out to
> working tree files upon merge. The default is "merge", which shows a
> [[[[[[[ conflict marker, changes made by one side, a ======= marker,
> changes made by the other side, and then a ]]]]]]] marker. An
> alternate style, "diff3", adds a ||||||| marker and the original text
> before the ======= marker.
> 
> I replaced the 'lower than' and 'greater than' symbols by 'open n
> close square brackets' to avoid antivirus.
> 
> Is this a bug, or something I missunderstood from git docs?

This is the expected behavior. There's some philosophical discussion
about the correct thing to do here in this thread (that message and its
replies, but the whole thread is an interesting read):

  https://public-inbox.org/git/7vvc94p8hb.fsf@xxxxxxxxxxxxxxxxxxxxxxxx/

Note that there is a patch in that thread to implement "zdiff3", which
does what you want. I've been rebasing it and running with it for
several years now. You can get my rebased version by fetching:

  https://github.com/peff/git ukk/zdiff3

But note that I think it may have a subtle bug, as I have once or twice
over the years seen it cause a segfault.

-Peff