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