[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: Symmetric Merge -- Algorithm

From: Julian Foad <julianfoad_at_btopenworld.com>
Date: Fri, 20 Apr 2012 14:06:10 +0100 (BST)

I (Julian Foad) wrote:

> Cristian Amarie wrote:
>
>>>   1. Find the latest rev of A synced to B and of B synced to A.
>>>   2. Choose a base.
>> For me 2 this is an important point regarding obtaining of the same
>> result.
>>
>> Having
>>   / A1 ... Ax ... An-1  -> An  (merge B into A produces An)
>> O
>>   \ B1 ... By ... Bm-1 -> Bm (merge A into B produces Bm)
>> (Ab and Bb BASE candidates)
>
> Hi Cristian.  First, let me see if I understand you.  You are talking about any
> graph consisting of a sequence of 'complete' merges[1] between the two
> branches A and B.  Is this a concrete example, where n=2 and m=3?
>
>     / -- p ---- q ----- A1 -- s ----- A2
>   O       \      \      /      \      /
>     \ --- B1 --- B2 -- r ----- B3 -- t
>
> Here, p/q/r/s/t means a change that is not a merge.  The p/q/r/s/t states are
> the base candidates, not Ab and Bb.

Look at the second diagram in the "Playing catch-up ..." section of <http://wiki.apache.org/subversion/SymmetricMerge#Playing_catch-up_with_Sync_and_Reintegrate>.  The node marked 'base' is the base for the second merge (the merge drawn in red).  Notice that the base node is not the target of the previous merge, instead it is the *source* of the previous merge arrow: A2, not B3.

- Julian
Received on 2012-04-20 15:06:46 CEST

This is an archived mail posted to the Subversion Dev mailing list.