On Tue, Jun 25, 2013 at 4:17 PM, Philip Martin
<philip.martin_at_wandisco.com> wrote:
> Branko Čibej <brane_at_wandisco.com> writes:
>
>> On 25.06.2013 13:42, Philip Martin wrote:
>>> What about rotates that overlap. Consider a repository:
>>>
>>> svnadmin create repo
>>> svn mkdir -mm --parents file://`pwd`/repo/A/B/C ^/X/Y/Z
>>>
>>> Rotate /A and /X/Y/Z and /X and /A/B/C:
>>>
>>> svn mv wc/A wc/A2
>>> svn mv wc/X wc/X2
>>> svn mv wc/A2/B/C wc/X
>>> svn mv wc/X2/Y/Z wc/A
>>> svn mv wc/A2/B wc/A/B
>>> svn mv wc/X2/Y wc/X/Y
>>> svn mv wc/A2 wc/X/Y/Z
>>> svn mv wc/X2 wc/A/B/C
>>
>> What you're describing is not a simple rotation, since you're
>> restructuring the tree quite a bit more than that. In any case there
>> should certainly be no copy operations in the editor drive.
>
> Perhaps the copy and delete should be combined into moves. So instead
> of:
You're affecting six nodes, so I think you should be able to pack this
down into touching 6 nodes once each. I believe this will work:
move(A/B, X/Y/Z/B)
rotate(A, X/Y/Z)
move(X/Y, A/B/C/Y)
rotate(X, A/B/C)
Insert appropriate alter() calls. Each operation can be performed as
it arrives, as the later calls depend upon those moves/rotates.
Cheers,
-g
Received on 2013-06-25 23:48:33 CEST