Greg Stein <gst...@gmail.com> writes: > On Fri, Sep 6, 2013 at 10:50 AM, Philip Martin > <philip.mar...@wandisco.com> 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*