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

Re: [merge-tracking]: Release date/version

From: Folker Schamel <schamel23_at_spinor.com>
Date: 2007-03-09 09:28:52 CET

Daniel Rall wrote:
> On Thu, 08 Mar 2007, Folker Schamel wrote:
>
>>> On Tue, 27 Feb 2007, Folker Schamel wrote:
>>>
>>>>> On 2/26/07, *Justin Johnson* <justinjohnson@gmail.com
>>>>> <mailto:justinjohnson@gmail.com>> wrote:
>>>>>
>>>>> What information is available on what this merge tracking will include?
>>>> Just for curiosity:
>>>> (For all our use cases, the features of svnmerge.py are fine.)
>>>>
>>>> When merging something from branch A -> B,
>>>> will merge respect already merged changes B -> A?
>>>> (Like svnmerge.py --bidirectional.)
>>>> Will merge respect already merged changes A -> X -> B or B -> X -> A?
>>>> (Not supported by svnmerge.py.)
>>> The specs can be found here:
>>>
>>> http://subversion.tigris.org/merge-tracking/
>>>
>>> If you can't determine the answer from reading the specs, let us know.
>> Yes, I know these documents.
>> I don't find the particular location again, but I think I found some
>> implementation note indicating that "B -> A" handled.
>> But I didn't find a note dealing with the other cases "A -> X -> B"
>> and "B -> X -> A", so I suppose they are not handled, is this correct?
>
> Great! I'm glad you're already familiar with the documents. Where in
> the documents would you expect to find this information? (I'd like to
> know where to clarify them.)

Good question. Somewhere in "Functional Specification".
Maybe in a new subsection in "Repeated Merge"?

>
> "A -> X -> B" is supported. Merge info is recorded on X for A when
> merging A into X. When merging that same change for X into B, we
> record both the merge info for the merge operation itself, plus merge
> in the merge info from the original merge (from A -> X).
>
> Example:
>
> 1. Run 'X$ svn merge -c 37 A', creating r50.
> 2. X now has merge info of "A:37".
> 3. Run 'B$ svn merge -c 50 X', creating r51.
> 4. B now has merge info of "A:37\nX:50".
>
> Attempts to merge either r37 of A or r50 of X into B will be no-ops,
> since B knows that those change sets have already been merged.
>
>
> I don't follow how you want your "B -> X -> A" case to fit in here.

'B$ svn merge -c1 A', creating r2, merge info of B="A:1"
'X$ svn merge -c2 B', creating r3, merge info of X="B:2\nA:1"
'A$ svn merge -c3 X', is this a no-op?
I suppose it should be, because r3 added "A:1" to the merge info of X.

The B -> A case would be:

'B$ svn merge -c1 A', creating r2, merge info of B="A:1"
'A$ svn merge -c2 B', is this a no-op?
I suppose it should be, because r2 added "A:1" to the merge info of B.

Cheers,
Folker

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Fri Mar 9 09:29:26 2007

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

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.