I think alter_directory needs a list of children as well as the new
properties.  Consider an update from

   relpath  revision props
              3
   A          3       p=v
   A/X        3

to

   relpath  revision props
              4
   A          4       p=vvv
   A/X        4
   A/Y        4

The v2 editor drive will call alter_directory to change the properties
on A and add_directory to add the child A/Y.

The alter_directory call cannot change the properties of A without
changing the revision, but it cannot simply change the revision of A if
A/Y has not yet been added.  The best solution seems to be that
alter_directory should have a list of the children, just like
add_directory, then it can add any missing children as incomplete,
change the properties and update the revision.

An alternative might be marking A incomplete, like a v1 drive.  I don't
like that, I would prefer it if v2 could reserve incomplete for nodes
that are just names and have no content.

Another alternative might be imposing a drive order restriction, only
allow alter_directory after all children have been added. I don't think
that is right either, v2 tries to avoid depth order restrictions.

If we consider a node's "content" to consist of text+props for files and
children+props for directories then we see that the current alter_file
already supplies all the content for file nodes while the current
alter_directory only supplies part of the content for directory nodes.
Adding children to alter_directory removes that difference.

-- 
uberSVN: Apache Subversion Made Easy
http://www.uberSVN.com

Reply via email to