From: Miklos Vajna Date: Wed, 17 Sep 2008 15:59:33 GMT Subject: Re: [IRC/patches] Failed octopus merge does not clean up Message-ID: <20080917155933.GI4829@genesis.frugalware.org> In-Reply-To: <200809171011.06714.jnareb@gmail.com> On Wed, Sep 17, 2008 at 10:11:02AM +0200, Jakub Narebski wrote: > >> BTW. does it mean that "git merge a b" might be not the same as > >> "git merge b a"? > >> > > > > No. Git merges all the sub-things together and then merges the result > > of that jumble into the branch you're on. > > > > Someone might have to correct me on that, but that's as far as I've > > understood it. > > From what I understand from above explanation, and from thread on git > mailing list about better implementation of and documenting finding > merge bases for multiple heads, I think octopus merge is done by merging > [reduced] heads one by one into given branch. > > This means that "git merge a b" does internally "git merge a; git merge b" > as I understand it. Sure, but given that both 'a' and 'b' merged (so none of them is subset of the other, for example so that reduce_heads() would drop one of them) the order of the parents will be different so the resulting commit will differ. The resulting tree will no, I think.