[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

work in progress patch: recording moved-here at op-root

From: Stefan Sperling <stsp_at_elego.de>
Date: Thu, 27 Sep 2012 19:08:05 +0200

Currently, we set the moved-here flag in NODES on the op-root
of a move and on all of its children.

Philip and I want to change that in order to eventually handle moves
in mixed-revision working copies better, because we cannot mark
every node inside a mixed-revision tree as "moved-here" since nodes
at different revisions cannot be considered part of the same move
operation (see http://wiki.apache.org/subversion/MultiLayerMoveUpdate).

Here's a work-in-progress patch towards setting moved-here only on
the op-root. I'm sending this to dev@ because it is not ready for
commit yet but I wanted to share it. Review and further contributions
are appreciated.

It's not clear whether this approach will be used. An alternative
approach is setting moved-here only on children with the same op-depth
as the op-root.

I've only been running the op-depth-tests with this so far, and they
all pass except for the last one (a test which involves mixed-revisions,
so the test is probably not quite correct yet).

No log message yet either :P

Index: subversion/libsvn_wc/wc-metadata.sql
===================================================================
--- subversion/libsvn_wc/wc-metadata.sql (revision 1391059)
+++ subversion/libsvn_wc/wc-metadata.sql (working copy)
@@ -387,9 +387,11 @@ CREATE TABLE NODES (
      perhaps add a column called "moved_from". */
 
   /* Boolean value, specifying if this node was moved here (rather than just
- copied). This is set on all the nodes in the moved tree. The source of
- the move is implied by a different node with a moved_to column pointing
- at the root node of the moved tree. */
+ copied). This is set on the op-root of the moved tree. Children at the
+ same op_depth inherit the flag, while children at higher op-depths appear
+ as separate op-roots which are disjoint from the moved-here layer.
+ The source of the move is implied by a different node with a moved_to
+ column pointing at the root node of the moved tree. */
   moved_here INTEGER,
 
   /* If the underlying node was moved away (rather than just deleted), this
Index: subversion/libsvn_wc/wc_db.c
===================================================================
--- subversion/libsvn_wc/wc_db.c (revision 1391059)
+++ subversion/libsvn_wc/wc_db.c (working copy)
@@ -3974,27 +3974,6 @@ db_op_copy(svn_wc__db_wcroot_t *src_wcroot,
                     (status == svn_wc__db_status_copied && op_root)))
                 SVN_ERR(svn_sqlite__bind_int(stmt, 7, 1));
             }
- else
- {
- svn_sqlite__stmt_t *info_stmt;
- svn_boolean_t have_row;
-
- /* We're moving a child along with the root of the move.
- *
- * Set moved-here depending on dst_parent, propagating
- * the above decision to moved-along children.
- * We can't use scan_addition() to detect moved-here because
- * the delete-half of the move might not yet exist. */
- SVN_ERR(svn_sqlite__get_statement(&info_stmt, dst_wcroot->sdb,
- STMT_SELECT_NODE_INFO));
- SVN_ERR(svn_sqlite__bindf(info_stmt, "is", dst_wcroot->wc_id,
- dst_parent_relpath));
- SVN_ERR(svn_sqlite__step(&have_row, info_stmt));
- SVN_ERR_ASSERT(have_row);
- if (svn_sqlite__column_boolean(info_stmt, 15))
- SVN_ERR(svn_sqlite__bind_int(stmt, 7, 1));
- SVN_ERR(svn_sqlite__reset(info_stmt));
- }
         }
 
       SVN_ERR(svn_sqlite__step_done(stmt));
@@ -4255,19 +4234,21 @@ db_op_copy_shadowed_layer(svn_wc__db_wcroot_t *src
   if (dst_presence == svn_wc__db_status_normal
       && src_wcroot == dst_wcroot) /* ### Remove limitation */
     {
+ svn_boolean_t moved_here;
+
       SVN_ERR(svn_sqlite__get_statement(&stmt, src_wcroot->sdb,
                              STMT_INSERT_WORKING_NODE_COPY_FROM_DEPTH));
 
       /* Perhaps we should avoid setting moved_here to 0 and leave it
          null instead? */
+ moved_here = (is_move && dst_op_depth == relpath_depth(dst_relpath));
       SVN_ERR(svn_sqlite__bindf(stmt, "issdstdd",
                         src_wcroot->wc_id, src_relpath,
                         dst_relpath,
                         dst_op_depth,
                         svn_relpath_dirname(dst_relpath, iterpool),
                         presence_map, dst_presence,
- (is_move ? 1 : 0),
- src_op_depth));
+ moved_here, src_op_depth));
 
       SVN_ERR(svn_sqlite__step_done(stmt));
 
@@ -4641,7 +4622,6 @@ svn_wc__db_op_copy_dir(svn_wc__db_t *db,
   iwb.changed_rev = changed_rev;
   iwb.changed_date = changed_date;
   iwb.changed_author = changed_author;
- iwb.moved_here = is_move;
 
   if (original_root_url != NULL)
     {
@@ -4658,6 +4638,7 @@ svn_wc__db_op_copy_dir(svn_wc__db_t *db,
                             original_repos_relpath, original_revision,
                             wcroot, local_relpath, scratch_pool));
 
+ iwb.moved_here = (is_move && iwb.op_depth == relpath_depth(local_relpath));
   iwb.children = children;
   iwb.depth = depth;
 
@@ -4718,7 +4699,6 @@ svn_wc__db_op_copy_file(svn_wc__db_t *db,
   iwb.changed_rev = changed_rev;
   iwb.changed_date = changed_date;
   iwb.changed_author = changed_author;
- iwb.moved_here = is_move;
 
   if (original_root_url != NULL)
     {
@@ -4735,6 +4715,7 @@ svn_wc__db_op_copy_file(svn_wc__db_t *db,
                             original_repos_relpath, original_revision,
                             wcroot, local_relpath, scratch_pool));
 
+ iwb.moved_here = (is_move && iwb.op_depth == relpath_depth(local_relpath));
   iwb.checksum = checksum;
 
   if (update_actual_props)
@@ -11133,7 +11114,8 @@ follow_moved_to(apr_array_header_t **moved_tos,
 
           SVN_ERR(svn_sqlite__get_statement(&stmt, wcroot->sdb,
                                             STMT_SELECT_MOVED_HERE));
- SVN_ERR(svn_sqlite__bindf(stmt, "isd", wcroot->wc_id, node_moved_to,
+ SVN_ERR(svn_sqlite__bindf(stmt, "isd", wcroot->wc_id,
+ ancestor_moved_to,
                                     relpath_depth(ancestor_moved_to)));
           SVN_ERR(svn_sqlite__step(&have_row, stmt));
           if (!have_row)
Index: subversion/tests/libsvn_wc/op-depth-test.c
===================================================================
--- subversion/tests/libsvn_wc/op-depth-test.c (revision 1391059)
+++ subversion/tests/libsvn_wc/op-depth-test.c (working copy)
@@ -1746,7 +1746,7 @@ test_wc_move(const svn_test_opts_t *opts, apr_pool
       { 2, "A/B", "base-deleted", NO_COPY_FROM, "A/B-move" },
       { 2, "A/B/C", "base-deleted", NO_COPY_FROM},
       { 2, "A/B-move", "normal", 1, "A/B", MOVED_HERE },
- { 2, "A/B-move/C", "normal", 1, "A/B/C", MOVED_HERE },
+ { 2, "A/B-move/C", "normal", 1, "A/B/C"},
       { 3, "A/B-move/C", "base-deleted", NO_COPY_FROM, "A/B-move/C-move" },
       { 3, "A/B-move/C-move", "normal", 1, "A/B/C", MOVED_HERE },
       { 0 }
@@ -3803,7 +3803,7 @@ nested_moves_child_first(const svn_test_opts_t *op
       {2, "A/B", "base-deleted", NO_COPY_FROM, "A/B2"},
       {2, "A/B/C", "base-deleted", NO_COPY_FROM},
       {2, "A/B2", "normal", 1, "A/B", MOVED_HERE},
- {2, "A/B2/C", "normal", 1, "A/B/C", MOVED_HERE},
+ {2, "A/B2/C", "normal", 1, "A/B/C"},
       {3, "A/B2/C", "base-deleted", NO_COPY_FROM, "A/B2/C2"},
       {3, "A/B2/C2", "normal", 1, "A/B/C", MOVED_HERE},
       {0}
@@ -3821,12 +3821,12 @@ nested_moves_child_first(const svn_test_opts_t *op
       {1, "A/B", "base-deleted", NO_COPY_FROM},
       {1, "A/B/C", "base-deleted", NO_COPY_FROM},
       {1, "A2", "normal", 1, "A", MOVED_HERE},
- {1, "A2/B", "normal", 1, "A/B", MOVED_HERE},
- {1, "A2/B/C", "normal", 1, "A/B/C", MOVED_HERE},
+ {1, "A2/B", "normal", 1, "A/B"},
+ {1, "A2/B/C", "normal", 1, "A/B/C"},
       {2, "A2/B", "base-deleted", NO_COPY_FROM, "A2/B2"},
       {2, "A2/B/C", "base-deleted", NO_COPY_FROM},
       {2, "A2/B2", "normal", 1, "A/B", MOVED_HERE},
- {2, "A2/B2/C", "normal", 1, "A/B/C", MOVED_HERE},
+ {2, "A2/B2/C", "normal", 1, "A/B/C"},
       {3, "A2/B2/C", "base-deleted", NO_COPY_FROM, "A2/B2/C2"},
       {3, "A2/B2/C2","normal", 1, "A/B/C", MOVED_HERE},
       {0}
@@ -3847,8 +3847,8 @@ nested_moves_child_first(const svn_test_opts_t *op
       {1, "A/B", "base-deleted", NO_COPY_FROM},
       {1, "A/B/C", "base-deleted", NO_COPY_FROM},
       {1, "A2", "normal", 1, "A", MOVED_HERE},
- {1, "A2/B", "normal", 1, "A/B", MOVED_HERE},
- {1, "A2/B/C", "normal", 1, "A/B/C", MOVED_HERE},
+ {1, "A2/B", "normal", 1, "A/B"},
+ {1, "A2/B/C", "normal", 1, "A/B/C"},
       {0}
     };
     SVN_ERR(check_db_rows(&b, "", nodes));
@@ -3891,8 +3891,8 @@ nested_moves_child_last(const svn_test_opts_t *opt
       {1, "A/B", "base-deleted", NO_COPY_FROM},
       {1, "A/B/C", "base-deleted", NO_COPY_FROM},
       {1, "A2", "normal", 1, "A", MOVED_HERE},
- {1, "A2/B", "normal", 1, "A/B", MOVED_HERE},
- {1, "A2/B/C", "normal", 1, "A/B/C", MOVED_HERE},
+ {1, "A2/B", "normal", 1, "A/B"},
+ {1, "A2/B/C", "normal", 1, "A/B/C"},
       {0}
     };
     SVN_ERR(check_db_rows(&b, "", nodes));
@@ -3908,12 +3908,12 @@ nested_moves_child_last(const svn_test_opts_t *opt
       {1, "A/B", "base-deleted", NO_COPY_FROM},
       {1, "A/B/C", "base-deleted", NO_COPY_FROM},
       {1, "A2", "normal", 1, "A", MOVED_HERE},
- {1, "A2/B", "normal", 1, "A/B", MOVED_HERE},
- {1, "A2/B/C", "normal", 1, "A/B/C", MOVED_HERE},
+ {1, "A2/B", "normal", 1, "A/B"},
+ {1, "A2/B/C", "normal", 1, "A/B/C"},
       {2, "A2/B", "base-deleted", NO_COPY_FROM, "A2/B2"},
       {2, "A2/B/C", "base-deleted", NO_COPY_FROM},
       {2, "A2/B2", "normal", 1, "A/B", MOVED_HERE},
- {2, "A2/B2/C", "normal", 1, "A/B/C", MOVED_HERE},
+ {2, "A2/B2/C", "normal", 1, "A/B/C"},
       {0}
     };
     SVN_ERR(check_db_rows(&b, "", nodes));
@@ -3929,12 +3929,12 @@ nested_moves_child_last(const svn_test_opts_t *opt
       {1, "A/B", "base-deleted", NO_COPY_FROM},
       {1, "A/B/C", "base-deleted", NO_COPY_FROM},
       {1, "A2", "normal", 1, "A", MOVED_HERE},
- {1, "A2/B", "normal", 1, "A/B", MOVED_HERE},
- {1, "A2/B/C", "normal", 1, "A/B/C", MOVED_HERE},
+ {1, "A2/B", "normal", 1, "A/B"},
+ {1, "A2/B/C", "normal", 1, "A/B/C"},
       {2, "A2/B", "base-deleted", NO_COPY_FROM, "A2/B2"},
       {2, "A2/B/C", "base-deleted", NO_COPY_FROM},
       {2, "A2/B2", "normal", 1, "A/B", MOVED_HERE},
- {2, "A2/B2/C", "normal", 1, "A/B/C", MOVED_HERE},
+ {2, "A2/B2/C", "normal", 1, "A/B/C"},
       {3, "A2/B2/C", "base-deleted", NO_COPY_FROM, "A2/B2/C2"},
       {3, "A2/B2/C2","normal", 1, "A/B/C", MOVED_HERE},
       {0}
@@ -3955,8 +3955,8 @@ nested_moves_child_last(const svn_test_opts_t *opt
       {1, "A/B", "base-deleted", NO_COPY_FROM},
       {1, "A/B/C", "base-deleted", NO_COPY_FROM},
       {1, "A2", "normal", 1, "A", MOVED_HERE},
- {1, "A2/B", "normal", 1, "A/B", MOVED_HERE},
- {1, "A2/B/C", "normal", 1, "A/B/C", MOVED_HERE},
+ {1, "A2/B", "normal", 1, "A/B"},
+ {1, "A2/B/C", "normal", 1, "A/B/C"},
       {0}
     };
     SVN_ERR(check_db_rows(&b, "", nodes));
@@ -4162,7 +4162,7 @@ move_to_swap(const svn_test_opts_t *opts, apr_pool
       {1, "A", "base-deleted", NO_COPY_FROM, "A2"},
       {1, "A/B", "base-deleted", NO_COPY_FROM},
       {1, "A2", "normal", 1, "A", MOVED_HERE},
- {1, "A2/B", "normal", 1, "A/B", MOVED_HERE},
+ {1, "A2/B", "normal", 1, "A/B"},
       {2, "A2/B", "base-deleted", NO_COPY_FROM, "X/B"},
       {2, "A2/Y", "normal", 1, "X/Y", MOVED_HERE},
       {2, "X/Y", "base-deleted", NO_COPY_FROM, "A2/Y"},
@@ -4183,9 +4183,9 @@ move_to_swap(const svn_test_opts_t *opts, apr_pool
       {0, "X/Y", "normal", 1, "X/Y"},
       {1, "A", "normal", 1, "X", FALSE, "A2", TRUE},
       {1, "A/B", "base-deleted", NO_COPY_FROM},
- {1, "A/Y", "normal", 1, "X/Y", MOVED_HERE},
+ {1, "A/Y", "normal", 1, "X/Y"},
       {1, "A2", "normal", 1, "A", MOVED_HERE},
- {1, "A2/B", "normal", 1, "A/B", MOVED_HERE},
+ {1, "A2/B", "normal", 1, "A/B"},
       {1, "X", "base-deleted", NO_COPY_FROM, "A"},
       {1, "X/Y", "base-deleted", NO_COPY_FROM},
       {2, "A/B", "normal", 1, "A/B", MOVED_HERE},
@@ -4207,10 +4207,10 @@ move_to_swap(const svn_test_opts_t *opts, apr_pool
       {0, "X", "normal", 1, "X"},
       {0, "X/Y", "normal", 1, "X/Y"},
       {1, "A", "normal", 1, "X", FALSE, "X", TRUE},
- {1, "A/Y", "normal", 1, "X/Y", MOVED_HERE},
+ {1, "A/Y", "normal", 1, "X/Y"},
       {1, "A/B", "base-deleted", NO_COPY_FROM},
       {1, "X", "normal", 1, "A", FALSE, "A", TRUE},
- {1, "X/B", "normal", 1, "A/B", MOVED_HERE},
+ {1, "X/B", "normal", 1, "A/B"},
       {1, "X/Y", "base-deleted", NO_COPY_FROM},
       {2, "A/Y", "base-deleted", NO_COPY_FROM, "X/Y"},
       {2, "X/B", "base-deleted", NO_COPY_FROM, "A/B"},
@@ -4236,10 +4236,10 @@ move_to_swap(const svn_test_opts_t *opts, apr_pool
       {0, "X", "normal", 1, "X"},
       {0, "X/Y", "normal", 1, "X/Y"},
       {1, "A", "normal", 1, "X", FALSE, "X", TRUE},
- {1, "A/Y", "normal", 1, "X/Y", MOVED_HERE},
+ {1, "A/Y", "normal", 1, "X/Y"},
       {1, "A/B", "base-deleted", NO_COPY_FROM},
       {1, "X", "normal", 1, "A", FALSE, "A", TRUE},
- {1, "X/B", "normal", 1, "A/B", MOVED_HERE},
+ {1, "X/B", "normal", 1, "A/B"},
       {1, "X/Y", "base-deleted", NO_COPY_FROM},
       {0}
     };
@@ -4257,10 +4257,10 @@ move_to_swap(const svn_test_opts_t *opts, apr_pool
       {0, "X", "normal", 1, "X"},
       {0, "X/Y", "normal", 1, "X/Y"},
       {1, "A", "normal", 1, "X", FALSE, "X", TRUE},
- {1, "A/Y", "normal", 1, "X/Y", MOVED_HERE},
+ {1, "A/Y", "normal", 1, "X/Y"},
       {1, "A/B", "base-deleted", NO_COPY_FROM},
       {1, "X", "normal", 1, "A", FALSE, "A", TRUE},
- {1, "X/B", "normal", 1, "A/B", MOVED_HERE},
+ {1, "X/B", "normal", 1, "A/B"},
       {1, "X/Y", "base-deleted", NO_COPY_FROM},
       {2, "A/Y", "base-deleted", NO_COPY_FROM, "X/Y"},
       {2, "X/B", "base-deleted", NO_COPY_FROM, "A/B"},
@@ -4287,8 +4287,8 @@ revert_nested_move(const svn_test_opts_t *opts, ap
     {1, "A/B", "base-deleted", NO_COPY_FROM},
     {1, "A/B/C", "base-deleted", NO_COPY_FROM},
     {1, "A2", "normal", 1, "A", MOVED_HERE},
- {1, "A2/B", "normal", 1, "A/B", MOVED_HERE},
- {1, "A2/B/C", "normal", 1, "A/B/C", MOVED_HERE},
+ {1, "A2/B", "normal", 1, "A/B"},
+ {1, "A2/B/C", "normal", 1, "A/B/C"},
     {0}
   };
   nodes_row_t nodes_AB_moved[] = {
@@ -4300,12 +4300,12 @@ revert_nested_move(const svn_test_opts_t *opts, ap
     {1, "A/B", "base-deleted", NO_COPY_FROM},
     {1, "A/B/C", "base-deleted", NO_COPY_FROM},
     {1, "A2", "normal", 1, "A", MOVED_HERE},
- {1, "A2/B", "normal", 1, "A/B", MOVED_HERE},
- {1, "A2/B/C", "normal", 1, "A/B/C", MOVED_HERE},
+ {1, "A2/B", "normal", 1, "A/B"},
+ {1, "A2/B/C", "normal", 1, "A/B/C"},
     {2, "A2/B", "base-deleted", NO_COPY_FROM, "A2/B2"},
     {2, "A2/B/C", "base-deleted", NO_COPY_FROM},
     {2, "A2/B2", "normal", 1, "A/B", MOVED_HERE},
- {2, "A2/B2/C", "normal", 1, "A/B/C", MOVED_HERE},
+ {2, "A2/B2/C", "normal", 1, "A/B/C"},
     {0}
   };
   nodes_row_t nodes_ABC_moved[] = {
@@ -4317,12 +4317,12 @@ revert_nested_move(const svn_test_opts_t *opts, ap
     {1, "A/B", "base-deleted", NO_COPY_FROM},
     {1, "A/B/C", "base-deleted", NO_COPY_FROM},
     {1, "A2", "normal", 1, "A", MOVED_HERE},
- {1, "A2/B", "normal", 1, "A/B", MOVED_HERE},
- {1, "A2/B/C", "normal", 1, "A/B/C", MOVED_HERE},
+ {1, "A2/B", "normal", 1, "A/B"},
+ {1, "A2/B/C", "normal", 1, "A/B/C"},
     {2, "A2/B", "base-deleted", NO_COPY_FROM, "A2/B2"},
     {2, "A2/B/C", "base-deleted", NO_COPY_FROM},
     {2, "A2/B2", "normal", 1, "A/B", MOVED_HERE},
- {2, "A2/B2/C", "normal", 1, "A/B/C", MOVED_HERE},
+ {2, "A2/B2/C", "normal", 1, "A/B/C"},
     {3, "A2/B2/C", "base-deleted", NO_COPY_FROM, "A2/B2/C2"},
     {3, "A2/B2/C2", "normal", 1, "A/B/C", MOVED_HERE},
     {0}
@@ -4451,7 +4451,7 @@ move_on_move2(const svn_test_opts_t *opts, apr_poo
       {0, "X", "normal", 1, "X"},
       {0, "X/B", "normal", 1, "X/B"},
       {1, "A2", "normal", 1, "A", MOVED_HERE},
- {1, "A2/B", "normal", 1, "A/B", MOVED_HERE},
+ {1, "A2/B", "normal", 1, "A/B"},
       {1, "A", "normal", 1, "X", FALSE, "A2"},
       {1, "A/B", "normal", 1, "X/B"},
       {0}
@@ -4468,7 +4468,7 @@ move_on_move2(const svn_test_opts_t *opts, apr_poo
       {0, "X", "normal", 1, "X"},
       {0, "X/B", "normal", 1, "X/B"},
       {1, "A2", "normal", 1, "A", MOVED_HERE},
- {1, "A2/B", "normal", 1, "A/B", MOVED_HERE},
+ {1, "A2/B", "normal", 1, "A/B"},
       {1, "B3", "normal", 1, "X/B", MOVED_HERE},
       {1, "A", "normal", 1, "X", FALSE, "A2"},
       {1, "A/B", "normal", 1, "X/B"},
@@ -4507,7 +4507,7 @@ move_added(const svn_test_opts_t *opts, apr_pool_t
       {1, "A", "base-deleted", NO_COPY_FROM, "A2"},
       {1, "A/B", "base-deleted", NO_COPY_FROM},
       {1, "A2", "normal", 1, "A", MOVED_HERE},
- {1, "A2/B", "normal", 1, "A/B", MOVED_HERE},
+ {1, "A2/B", "normal", 1, "A/B"},
       {3, "A2/B/C", "normal", NO_COPY_FROM},
       {3, "A2/B/C2", "normal", NO_COPY_FROM},
       {0}
@@ -4542,7 +4542,7 @@ move_update(const svn_test_opts_t *opts, apr_pool_
       {1, "A", "base-deleted", NO_COPY_FROM, "A2"},
       {1, "A/B", "base-deleted", NO_COPY_FROM},
       {1, "A2", "normal", 1, "A", MOVED_HERE},
- {1, "A2/B", "normal", 1, "A/B", MOVED_HERE},
+ {1, "A2/B", "normal", 1, "A/B"},
       {0}
     };
     SVN_ERR(check_db_rows(&b, "", nodes));
@@ -4562,7 +4562,7 @@ move_update(const svn_test_opts_t *opts, apr_pool_
       {1, "A2", "normal", 1, "A", MOVED_HERE},
       {1, "A2/B", "not-present", 2, "A/B"}, /* XFAIL */
       {2, "A2/B", "normal", 2, "A/B", MOVED_HERE},
- {2, "A2/B/C", "normal", 2, "A/B/C", MOVED_HERE},
+ {2, "A2/B/C", "normal", 2, "A/B/C"},
       {0}
     };
     SVN_ERR(check_db_rows(&b, "", nodes));
@@ -4651,11 +4651,11 @@ test_scan_delete(const svn_test_opts_t *opts, apr_
       {1, "A2/B", "base-deleted", NO_COPY_FROM},
       {1, "Z", "normal", 1, "A2/B", MOVED_HERE},
       {1, "X", "normal", 1, "A2", MOVED_HERE},
- {1, "X/B", "normal", 1, "A2/B", MOVED_HERE},
+ {1, "X/B", "normal", 1, "A2/B"},
       {2, "A/B", "base-deleted", NO_COPY_FROM, "X/B"},
       {2, "A/B/C", "base-deleted", NO_COPY_FROM},
       {2, "X/B", "normal", 1, "A/B", FALSE, "Z", TRUE},
- {2, "X/B/C", "normal", 1, "A/B/C", MOVED_HERE},
+ {2, "X/B/C", "normal", 1, "A/B/C"},
       {1, "Y", "normal", 1, "A/B/C", MOVED_HERE},
       {1, "C2", "base-deleted", NO_COPY_FROM, "X/B/C"},
       {3, "X/B/C", "normal", 1, "C2", FALSE, "Y", TRUE},
@@ -4794,46 +4794,46 @@ test_follow_moved_to(const svn_test_opts_t *opts,
       {0, "A3/B/C/D/E", "normal", 1, "A3/B/C/D/E"},
 
       {1, "A1", "normal", 1, "A2", FALSE, "A3", TRUE},
- {1, "A1/B", "normal", 1, "A2/B", MOVED_HERE},
- {1, "A1/B/C", "normal", 1, "A2/B/C", MOVED_HERE},
- {1, "A1/B/C/D", "normal", 1, "A2/B/C/D", MOVED_HERE},
- {1, "A1/B/C/D/E", "normal", 1, "A2/B/C/D/E", MOVED_HERE},
+ {1, "A1/B", "normal", 1, "A2/B"},
+ {1, "A1/B/C", "normal", 1, "A2/B/C"},
+ {1, "A1/B/C/D", "normal", 1, "A2/B/C/D"},
+ {1, "A1/B/C/D/E", "normal", 1, "A2/B/C/D/E"},
 
       {1, "A2", "normal", 1, "A3", FALSE, "A1", TRUE},
- {1, "A2/B", "normal", 1, "A3/B", MOVED_HERE},
- {1, "A2/B/C", "normal", 1, "A3/B/C", MOVED_HERE},
- {1, "A2/B/C/D", "normal", 1, "A3/B/C/D", MOVED_HERE},
- {1, "A2/B/C/D/E", "normal", 1, "A3/B/C/D/E", MOVED_HERE},
+ {1, "A2/B", "normal", 1, "A3/B"},
+ {1, "A2/B/C", "normal", 1, "A3/B/C"},
+ {1, "A2/B/C/D", "normal", 1, "A3/B/C/D"},
+ {1, "A2/B/C/D/E", "normal", 1, "A3/B/C/D/E"},
 
       {1, "A3", "normal", 1, "A1", FALSE, "A2", TRUE},
- {1, "A3/B", "normal", 1, "A1/B", MOVED_HERE},
- {1, "A3/B/C", "normal", 1, "A1/B/C", MOVED_HERE},
- {1, "A3/B/C/D", "normal", 1, "A1/B/C/D", MOVED_HERE},
- {1, "A3/B/C/D/E", "normal", 1, "A1/B/C/D/E", MOVED_HERE},
+ {1, "A3/B", "normal", 1, "A1/B"},
+ {1, "A3/B/C", "normal", 1, "A1/B/C"},
+ {1, "A3/B/C/D", "normal", 1, "A1/B/C/D"},
+ {1, "A3/B/C/D/E", "normal", 1, "A1/B/C/D/E"},
 
       {2, "A1/B", "normal", 1, "A3/B", FALSE, "A3/B", TRUE},
- {2, "A1/B/C", "normal", 1, "A3/B/C", MOVED_HERE},
- {2, "A1/B/C/D", "normal", 1, "A3/B/C/D", MOVED_HERE},
- {2, "A1/B/C/D/E", "normal", 1, "A3/B/C/D/E", MOVED_HERE},
+ {2, "A1/B/C", "normal", 1, "A3/B/C"},
+ {2, "A1/B/C/D", "normal", 1, "A3/B/C/D"},
+ {2, "A1/B/C/D/E", "normal", 1, "A3/B/C/D/E"},
 
       {2, "A2/B", "normal", 1, "A1/B", FALSE, "A1/B", TRUE},
- {2, "A2/B/C", "normal", 1, "A1/B/C", MOVED_HERE},
- {2, "A2/B/C/D", "normal", 1, "A1/B/C/D", MOVED_HERE},
- {2, "A2/B/C/D/E", "normal", 1, "A1/B/C/D/E", MOVED_HERE},
+ {2, "A2/B/C", "normal", 1, "A1/B/C"},
+ {2, "A2/B/C/D", "normal", 1, "A1/B/C/D"},
+ {2, "A2/B/C/D/E", "normal", 1, "A1/B/C/D/E"},
 
       {2, "A3/B", "normal", 1, "A2/B", FALSE, "A2/B", TRUE},
- {2, "A3/B/C", "normal", 1, "A2/B/C", MOVED_HERE},
- {2, "A3/B/C/D", "normal", 1, "A2/B/C/D", MOVED_HERE},
- {2, "A3/B/C/D/E", "normal", 1, "A2/B/C/D/E", MOVED_HERE},
+ {2, "A3/B/C", "normal", 1, "A2/B/C"},
+ {2, "A3/B/C/D", "normal", 1, "A2/B/C/D"},
+ {2, "A3/B/C/D/E", "normal", 1, "A2/B/C/D/E"},
 
       {4, "A1/B/C/D", "normal", 1, "A1/B/C/D", FALSE, "A3/B/C/D", TRUE},
- {4, "A1/B/C/D/E", "normal", 1, "A1/B/C/D/E", MOVED_HERE},
+ {4, "A1/B/C/D/E", "normal", 1, "A1/B/C/D/E"},
 
       {4, "A2/B/C/D", "normal", 1, "A2/B/C/D", FALSE, "A1/B/C/D", TRUE},
- {4, "A2/B/C/D/E", "normal", 1, "A2/B/C/D/E", MOVED_HERE},
+ {4, "A2/B/C/D/E", "normal", 1, "A2/B/C/D/E"},
 
       {4, "A3/B/C/D", "normal", 1, "A3/B/C/D", FALSE, "A2/B/C/D", TRUE},
- {4, "A3/B/C/D/E", "normal", 1, "A3/B/C/D/E", MOVED_HERE},
+ {4, "A3/B/C/D/E", "normal", 1, "A3/B/C/D/E"},
 
       {5, "A1/B/C/D/E", "normal", 1, "A2/B/C/D/E", FALSE, "A3/B/C/D/E", TRUE},
       {5, "A2/B/C/D/E", "normal", 1, "A3/B/C/D/E", FALSE, "A1/B/C/D/E", TRUE},
Received on 2012-09-27 19:08:44 CEST

This is an archived mail posted to the Subversion Dev mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.