I've ben asked whether the command line could be enhanced so that svn commit --parents dir/node
where 'dir' is added would automatically include 'dir' in the commit and thus succeed. The basic definition given is that it would work "just like the GUI tools" but that doesn't really help me. I believe the basic principle is that explicit targets are committed recursively or non-recursively, just like the current commit code, but that sufficient parents are automatically included to make the commit work. It's relatively simple when the extra, non-explict, targets are simple adds. But when those extra targets are deleted, copied or replaced they can only be included with some level of recursion and so may affect other children such as 'dir/node2'. I'm not certain whether the commit should affect those other children or fail, probably it should fail. Another problem is property only changes. If 'dir' only has property changes then it does not have to be included for the commit to be possible. I'm not certain whether the commit should include or omit property-only parents. My feeling is that if --parents included just adds, or perhaps both adds and property-only changes, with an implicit '--depth empth' then we would have well defined behaviour that users could understand. The commit would still fail if it attempted to include a copy, delete or replace. Does that sound like an enhancement people would use? -- Philip
