subversion-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Philip Martin <philip.mar...@wandisco.com>
Subject Re: [Subversion Wiki] Update of "MultiLayerMoves" by PhilipMartin
Date Fri, 27 Apr 2012 16:59:43 GMT
Greg Stein <gstein@gmail.com> writes:

> On Thu, Apr 26, 2012 at 10:06, Apache subversion Wiki
> <commits@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@2 and X@1.
>
> Hm? I would expect the A/f@2 to be in the op_depth==1 line, and B/f at
> op_depth==2 to continue to refer to X@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
Mime
View raw message