On Fri, Sep 6, 2013 at 5:50 PM, Philip Martin <philip.mar...@wandisco.com> wrote: > Philip Martin <philip.mar...@wandisco.com> writes: > >> What about alter_dir? I think the rule is that alter_dir on a directory >> should occur before add or delete affects the children of the directory. >> There is also a rule: >> >> * - The ancestor of an added, copied-here, moved-here, or >> * modified node may not be deleted. The ancestor may not be moved >> * (instead: perform the move, *then* the edits). > > I've been thinking about alter_dir and I see no reason, in the update > editor at least, for a rule that requires alter_dir before adding or > removing children. The Ev2 "once" rule is designed to ensure that Ev2 > actions can be applied to the nodes in the working copy as the actions > are received and that the working copy nodes will always reflect > repository nodes. This doesn't require alter_dir on the parent before > add/delete of children. > > Consider a working copy with three nodes: > > A@6 > A/B@6 > A/C@6 > > that gets updated to > > A@8 > A/D@8 > A/E@8 > > That's two adds, two deletes and an alter and the update editor can > handle them in any order, even this order: > > add_dir A/D > delete A/B > alter_dir A, children=D,E > add_dir A/E > delete A/C
I don't fully grok the Ev2 ideas and discussions, so not sure this is relevant, but please do remember this little detail: for working copies on case-insensitive filesystems, it's important that deletes are executed before adds (for handling case-only renames: 'svn mv foo Foo'). -- Johan