On Tue, Feb 23, 2010 at 10:21, <phi...@apache.org> wrote: > Author: philip > Date: Tue Feb 23 15:21:02 2010 > New Revision: 915378 > > URL: http://svn.apache.org/viewvc?rev=915378&view=rev > Log: > Remove svn_wc__entry_modify2 from svn_wc__db_temp_op_delete. > > * subversion/libsvn_wc/wc_db.c > (svn_wc__db_temp_op_delete): Use a new implementation.
I like the direction this is headed. I'm think that we may want to promote this function to svn_wc__db_op_delete() and document that op_delete is NON-RECURSIVE. And further state, that all children must be deleted FIRST (and assert that in the func!). I think. Not entirely sure. For example, deleting children of a copied subtree leaves nodes with the 'not-present' presence. So as you delete all the children, this is what you'd set them to. HOWEVER, when you finally delete the root of that copy, then you must re-traverse the subtree: remove all nodes that have no underlying BASE node, and convert any that *do* over to presence='base-deleted'. And that would have to happen in a big ol' transaction. But one nice thing about defining op_delete as non-recursive means that it is interruptable. At any point, the user could stop, leaving the working copy in a sane state. >... Skipping a review. I've reviewed the (current) code, and have a few mods which I'll commit in a bit. See my other note, however, for removing the db_working_get_status() function in favor of sticking to read_info(). Cheers, -g