Greg Stein <gst...@gmail.com> writes: > On Fri, Sep 6, 2013 at 1:47 PM, Philip Martin >> Two people at least. I have shown how Ev2 with a split move could >> handle the case >> >> A/B/C to A >> A/B to A/B >> A to A/B/C >> >> What is your alternative?
How does you suggestion work? Start with NODES local_relpath revision status repos_path A 6 normal A A/B 6 normal A/B A/B/C 6 normal A/B/C > move(A/B/C@original, A, replace=R) What does the receiver do? I suppose it could implement the replace and move the replaced nodes to some temporary table: NODES local_relpath revision status repos_path A 6 normal A/B/C and TEMP A 6 normal A A/B 6 normal A/B A/B/C 6 not-present A/B/C but note the repos_path for the new A in NODES. We can't simply change it to: NODES local_relpath revision status repos_path A 6 normal A as that row would be invalid: wrong properties, no A@6 in the repository. Let's leave it as A/B/C. > move(A/B@original, A/B) Then it moves the relevant rows out of the temporary table: NODES local_relpath revision status repos_path A 6 normal A/B/C A/B 6 normal A/B A/B/C not-present A/B/C and TEMP A 6 normal A So now A/B in NODES is switched relative to A. It's not even our standard switch because A in the working copy is A/B/C in the repository and the repository node has no child B. > move(A@original, A/B/C) Move the final row out of the temporary table NODES local_relpath revision status repos_path A 6 normal A/B/C A/B 6 normal A/B A/B/C 6 normal A So now we have two of these strange switches. > Not sure of the intent with children (ie. what is retained under A/B/C). What children? Every node gets moved. Now we need the alter calls, these can fix up the switches: alter_dir(A, children=B) NODES local_relpath revision status repos_path A 8 normal A A/B 6 normal A/B A/B/C 6 normal A alter_dir(A/B, children=C) NODES local_relpath revision status repos_path A 8 normal A A/B 8 normal A/B A/B/C 6 normal A alter_dir(A/B/C, children=) NODES local_relpath revision status repos_path A 8 normal A A/B 8 normal A/B A/B/C 8 normal A/B/C Is that the plan? NODES goes through those intermediate states with switched nodes? -- Philip Martin | Subversion Committer WANdisco // *Non-Stop Data*