Greg Stein <[email protected]> writes:
> On Fri, Sep 6, 2013 at 10:50 AM, Philip Martin
> <[email protected]> wrote:
>>...
>> again either invalid or switched. This implies that if we want to
>> combine
>
> They are already combined. One person is trying to *decombine* them
> into separate non-atomic unknown-duration actions.
Two people at least. I have shown how Ev2 with a split move could
handle the case
A/B/C to A
A/B to A/B
A to A/B/C
What is your alternative?
>
>>
>> move_away A, id=1
>> move_here id=1, B
>>
>> into a single
>>
>> move A, B
>>
>> then move and alter need to be combined:
>>
>> move_dir A, B, children=, props=
>> move_file A, B, checksum=, props=
>
> Well, that is one possibility. But then you also need move_symlink(A,
> B, target=, props=). And if we ever add a fourth node type... another
> entrypoint.
Yes. That's what we do.
> Same issue for copy().
>
> It was a difficult decision in the Ev2 design.
I suspect copy needs to change as well. If I start with A@6 and copy A
to B and modify B then the Ev2 sequence
copy A B
alter_dir B properties=n:v
alter_dir . children=A,B
doesn't work in the update editor. (I could have put "alter_dir ."
earlier, there is no order restriction, but it makes no difference.)
I start with NODES
path rev status repo
A 6 normal A
the copy either gives
path rev status repo
A 6 normal A
B 6 normal A
which has B switched, or it gives
path rev status repo
A 6 normal A
B 6 normal B
which has an invalid node B@6. Neither of those will update to the
desired final state
path rev status repo
A 8 normal A
B 8 normal B
--
Philip Martin | Subversion Committer
WANdisco // *Non-Stop Data*