Re: Improving merge of tricky conflicts

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Jul 22, 2020 at 07:50:08AM +0200, Johannes Sixt wrote:

> Am 22.07.20 um 01:29 schrieb B. Stebler:
> > I have been looking for a tool to display merge conflicts, that instead
> > of showing the two versions of the conflicting section, would show the
> > diff for that section in both conflicting commits.
> 
> Perhaps you want to configure `merge.conflictStyle=diff3`? It does not
> exactly show a diff, but it writes the base version of the conflicted
> part in addition to "ours" and "theirs".

Yeah, I find diff3 is usually sufficient. But the contents of the base,
"ours", and "theirs" sides are also available in the index:

  # diff between base (stage 1) and ours (stage 2)
  git diff :1:file :2:file

  # diff between base (stage 1) and theirs (stage 3)
  git diff :1:file :3:file

I thought we had added nice aliases for "ours" and "theirs" instead of
the hard-to-remember stage numbers, but I think we only did so for
things like "git checkout --ours", etc.

The big downside here, of course, is that it's showing the diff for the
whole file, not just one hunk (on the other hand, I often find the
trickiest conflicts are ones where the changes unexpectedly span
multiple hunks).

There's also git-mergetool, which uses the information in those stages
to feed content to other tools, which may show conflicts in more
advanced ways. I don't have opinions on any of the particular tools it
supports, but "git mergetool --tool-help" might be a good place to start
exploring.

-Peff



[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux