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

Re: [Subversion Wiki] Update of "MultiLayerMoves" by PhilipMartin

From: Philip Martin <philip.martin_at_wandisco.com>
Date: Fri, 27 Apr 2012 17:59:43 +0100

Greg Stein <gstein_at_gmail.com> writes:

> On Thu, Apr 26, 2012 at 10:06, Apache subversion Wiki
> <commits_at_subversion.apache.org> wrote:
>>...
>> + == Problem Cases ==
>> +
>> + Move A to B:
>> +
>> + || op-depth || local-relpath || presence     || revision || repos || moved-to ||
>> + ||  0       ||    A          || normal       ||   1      ||   A   ||          ||
>> + ||  0       ||    A/f        || normal       ||   1      ||   A/f ||          ||
>> + ||  1       ||    A          || base-deleted ||   1      ||   A   ||   B      ||
>> + ||  1       ||    A/f        || base-deleted ||   1      ||   A/f ||          ||
>> + ||  1       ||    B          || normal       ||   1      ||   A   ||          ||
>> + ||  1       ||    B/f        || normal       ||   1      ||   A/f ||       ||
>> +
>> + Delete B/f and replace with something copied from elsewhere:
>> +
>> + || op-depth || local-relpath || presence     || revision || repos || moved-to ||
>> + ||  0       ||    A          || normal       ||   1      ||   A   ||          ||
>> + ||  0       ||    A/f        || normal       ||   1      ||   A/f ||          ||
>> + ||  1       ||    A          || base-deleted ||   1      ||   A   ||   B      ||
>> + ||  1       ||    A/f        || base-deleted ||   1      ||   A/f ||          ||
>> + ||  1       ||    B          || normal       ||   1      ||   A   ||          ||
>> + ||  1       ||    B/f        || normal       ||   1      ||   A/f ||          ||
>> + ||  2       ||    B/f        || normal       ||   1      ||   X   ||          ||
>
> Wouldn't the B/f line at op_depth==1 have not-present to indicate that
> it was deleted?

No. Before delete:

op-depth local-relpath presence
   1 B normal
   1 B/f normal

Delete B/f:

op-depth local-relpath presence
   1 B normal
   1 B/f normal
   2 B/f base-deleted

Replace B/f

op-depth local-relpath presence
   1 B normal
   1 B/f normal
   2 B/f normal

>> +
>> + Now update A and go through the mixed-revision base tree: we can't represent the mixed-revision copy since that would require B/f at op-depth=2 to record both A/f_at_2 and X_at_1.
>
> Hm? I would expect the A/f_at_2 to be in the op_depth==1 line, and B/f at
> op_depth==2 to continue to refer to X_at_1.

No. When we have mixed-rev A and A/f and A gets moved to B the result
is:

op-depth local-relpath presence revision
   0 A normal 1
   0 A/f normal 2
   1 B normal 1
   1 B/f not-present
   2 B/f normal 2

and that's a problem if op-depth=2 B/f is already used for somethin
else.

-- 
uberSVN: Apache Subversion Made Easy
http://www.uberSVN.com
Received on 2012-04-27 19:00:22 CEST

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.