Dear Wiki user,
You have subscribed to a wiki page or wiki category on "Subversion Wiki" for change notification.
The "MultiLayerMoves" page has been changed by PhilipMartin:
http://wiki.apache.org/subversion/MultiLayerMoves?action=diff&rev1=16&rev2=17
There is only one move recorded C/F->C/G. The move inside the copy is recorded in a
similar way to the move inside a move.
+ = Move rewrites moved-to =
+
+ Move has to rewrite moved-to both inside an outside the moved tree. The first case is moved-to
entirely within the moved tree: move A to B after A/F to A/G. This causes moved-to on A/F
to be rewritted (to null) and moved-to on B/F to be added:
+
+ || op-depth || local-relpath || presence || moved-to ||
+ || 0 || A || normal || ||
+ || 0 || A/F || normal || ||
+ || 2 || A/F || base-deleted || A/G ||
+ || 2 || A/G || normal || ||
+
+ || op-depth || local-relpath || presence || moved-to ||
+ || 0 || A || normal || ||
+ || 0 || A/F || normal || ||
+ || 1 || A || base-deleted || B ||
+ || 1 || A/F || base-deleted || ||
+ || 1 || B || normal || ||
+ || 1 || B/F || normal || ||
+ || 2 || B/F || base-deleted || B/G ||
+ || 2 || B/G || normal || ||
+
+ The second case is moved-to from inside the moved-tree to outside the moved tree: move A
to B after A/F to G. Like the first case this requires the moved-to on A/F to be rewritten
(to null) and moved-to on B/F to be added. Compared to the first case the value of the rewritten
moved-to doesn't change:
+
+ || op-depth || local-relpath || presence || moved-to ||
+ || 0 || A || normal || ||
+ || 0 || A/F || normal || ||
+ || 2 || A/F || base-deleted || G ||
+ || 1 || G || normal || ||
+
+ || op-depth || local-relpath || presence || moved-to ||
+ || 0 || A || normal || ||
+ || 0 || A/F || normal || ||
+ || 1 || A || base-deleted || B ||
+ || 1 || A/F || base-deleted || ||
+ || 1 || B || normal || ||
+ || 1 || B/F || normal || ||
+ || 2 || B/F || base-deleted || G ||
+ || 1 || G || normal || ||
+
+ The third case is move-to from outside the moved tree into the moved tree: move A to B after
F to A/F. This causes moved-to on F, outside the moved tree, to be rewritten:
+
+ || op-depth || local-relpath || presence || moved-to ||
+ || 0 || A || normal || ||
+ || 0 || F || normal || ||
+ || 1 || F || base-deleted || A/G ||
+ || 2 || A/G || normal || ||
+
+ || op-depth || local-relpath || presence || moved-to ||
+ || 0 || A || normal || ||
+ || 0 || F || normal || ||
+ || 1 || A || base-deleted || B ||
+ || 1 || F || base-deleted || B/G ||
+ || 1 || B || normal || ||
+ || 2 || B/G || normal || ||
+
|