You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by rh...@apache.org on 2014/02/11 18:39:07 UTC

svn commit: r1567228 - /subversion/trunk/subversion/libsvn_wc/wc_db.c

Author: rhuijben
Date: Tue Feb 11 17:39:07 2014
New Revision: 1567228

URL: http://svn.apache.org/r1567228
Log:
Following up on r1567204, only look for moved children to patch in the op-depth
layers that we are about to delete. Before this patch we accidentally applied
move information from lower layers to the WORKING layers and (in the tests) then
overwrote that bad information with what should be there.

So this patch really avoids doing work that shouldn't be done.

This makes all our tests pass with the SVN_SQLITE_REVERSE_UNORDERED_SELECTS
flag.

* subversion/libsvn_wc/wc_db.c
  (delete_node): Use the delete depth for selecting the nodes instead of the
    current op-depth of the node that we are about to delete. This avoids
    looking at completely uninteresting layers.

Modified:
    subversion/trunk/subversion/libsvn_wc/wc_db.c

Modified: subversion/trunk/subversion/libsvn_wc/wc_db.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/wc_db.c?rev=1567228&r1=1567227&r2=1567228&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_wc/wc_db.c (original)
+++ subversion/trunk/subversion/libsvn_wc/wc_db.c Tue Feb 11 17:39:07 2014
@@ -7851,7 +7851,7 @@ delete_node(void *baton,
       SVN_ERR(svn_sqlite__get_statement(&stmt, wcroot->sdb,
                                         STMT_SELECT_MOVED_FOR_DELETE));
       SVN_ERR(svn_sqlite__bindf(stmt, "isd", wcroot->wc_id, local_relpath,
-                                working_op_depth));
+                                delete_op_depth));
 
       SVN_ERR(svn_sqlite__step(&have_row, stmt));
       iterpool = svn_pool_create(scratch_pool);
@@ -7887,7 +7887,9 @@ delete_node(void *baton,
                 }
               else
                 {
-                  /* Update the op-depth of an moved node below this tree */
+                  /* Update the op-depth of an moved away node that was
+                     registered as moved by the records that we are about
+                     to delete */
                   fixup = TRUE;
                   child_op_depth = delete_op_depth;
                 }