"Bert Huijben" <b...@qqmail.nl> writes: > The only case where you would want to track those moves, is when they are > also stored in a different place in BASE.
Lets consider moves that do have a base node. I'm trying to determine what is the correct behaviour for the tests nested_moves_child_first and nested_moves_child_last in op-depth-tests.c. Consider two nodes A and A/B and two nested moves. We can either do A/B to A/B2 before A to A2, or A2/B to A2/B2 after A to A2. Which rows should get marked moved_here? State 1: after A to A2 op_depth local_relpath presence moved_here moved_to 0 A normal A2 0 A/B normal 1 A base-deleted 1 A/B base-deleted 1 A2 normal 1 1 A2/B normal 1 All the descendants of A2 are marked moved here. I believe this is the way it is intended to work. Now move A2/B to A2/B2 and note that A2/B at op-depth=1 is still marked moved_here: State 2: after A to A2 then A2/B to A2/B2 op_depth local_relpath presence moved_here moved_to 0 A normal A2 0 A/B normal A2/B 1 A base-deleted 1 A/B base-deleted 1 A2 normal 1 1 A2/B normal 1 2 A2/B base-deleted 2 A2/B2 normal 1 If the moves are done in the other order the result is that A2/B is not marked moved_here. State 3: after A/B to A/B2 then A to A2 op_depth local_relpath presence moved_here moved_to 0 A normal A2 0 A/B normal A2/B 1 A base-deleted 1 A/B base-deleted 1 A2 normal 1 1 A2/B normal 2 A2/B base-deleted 2 A2/B2 normal 1 Which of these is correct, A2/B moved_here or not? This makes a real difference when reverting the A2/B to A2/B2 move. Reverting state 2 to state 1 works, but reverting state 3 to state 1 doesn't because A2/B does not get marked moved_here. -- uberSVN: Apache Subversion Made Easy http://www.uberSVN.com