Subject: Re: "Temporary merge branch 2" Conflicts

From: Stephen Bash <[email-masked]>
Date: Fri, 17 Aug 2012 16:56:30 -0400 (EDT)

----- Original Message -----
> From: "Stephen Bash" <[email-masked]>
> Sent: Friday, August 17, 2012 9:48:45 AM
> Subject: "Temporary merge branch 2" Conflicts
> 
> Given this branch history:
> 
>  ---------M------M---M-------> dev
>      \   /      /   /
>       --------------           v1-maint
>             \   \   \
>              ----M---M-------> v1.5-maint
> 
> I am attempting to merge v1.5-maint into dev.

Turns out (not surprisingly) the graph is not that simple.  I have multiple (disjoint) merge bases:

  $ git merge-base --all dev v1.5-maint 
  ad9ed6c207fba9419b10a394e3721333d0d73e81
  5ff4cb0927188fb7246a0eff22d7ffed1a91fe2d
  $ git rev-list --ancestry-path 5ff4cb0..ad9ed6c
  $

A little investigation of 5ff4cb0 shows the branch structure looks more like:

       A-----C---------> v1-maint
      /      |\
 ----o       | \
      \      |  \
       B     |   \
       |\    |    \
 ------|-M---|-----M---> v1.5-maint
       |     |
 ------M-----M---------> dev

B is 5ff4cb0 and C is ad9ed6c (with several months and commits separating them).  A and B are tree-same (the only difference is the commit time and the log message).  Again, I'm attempting to merge v1.5-maint into dev.

> Googling around I found a few mentions of these temporary merge
> branches, e.g. $gmane/157591, but I don't think we have any
> criss-cross merges.

And now I'm convinced I do have some form of degenerate merge case.  I made several attempts to dig myself out of this hole, but failed.  

What is the recommended method for resolving this sort of merge?  kdiff3 obviously doesn't understand the situation.  Do the working tree files contain all the conflicts?  If so, I can just go through by hand and resolve the conflicts the old fashion way.

Separately, is mergetool passing the correct base file to the external tool if I'm seeing "Temporary merge branch" conflicts in it?  (I'm using git 1.7.11.4)

Thanks!
Stephen