Re: Strange merge conflicts against earlier merge.
- From
Junio C Hamano <junkio@cox.net>
- Date
- Nov 11, 2005, 17:29 UTC
- Message-ID
- <7v64qzozyx.fsf@assigned-by-dhcp.cox.net>
- In-Reply-To
- <20051111114511.GQ30496@pasky.or.cz>
Petr Baudis <pasky@suse.cz> writes:
> Does core GIT have support for multibase merges, except for the > recursive merge strategy? How do you do it?
There were lengthy discussion on this and a lot of work that went into the resolution. We do three things.
- The first implementation does a trial read-tree 3-way using each of the base candidates without smudging the working tree, and counts paths that need file-level merges, to guess the best base, and uses that base. This is in the 'stupid' stratagy.
- The above turned out to have a risky corner case, especially when one side reverted a patch and the other one did not. To address this, read-tree was rewritten and 3-way form of read-tree can take more than three trees these days, letting you feed it all the merge base candidates. This code is used in 'resolve' strategy.
- The 'recursive' strategy tries to come up with a merge of the candidate bases and uses it as the base of the final merge.