On 30.08.2013 19:12, Julian Foad wrote: > Branko Čibej wrote: > >> One possible solution is to replay the moves in the order they happened. >> Then you'd get two cases: >> >> * A is an ancestor of B: the operation is: > ('Ancestor' meaning a time-line predecessor of the same node-copy-id.)
Yes. [...] >> * A and B are the same node: In this case, they'll can only be visible >> at the same time if you have a switched subtree or an external >> subtree, and the multiple-source move doesn't happen (because the >> move needs to be replicated in both subtrees) > If A points to ^/A@10 and B points to ^/A@10, then B is switched but the move > can't (and shouldn't) be replicated in subtree B because B is the move-root > node. Sorry, I should've said that the subtrees are independent and therefore don't run afoul of any of the scenarios you described. > >> I'm not sure how the editor driver would represent the move sequence and >> whether the resulting (intermediate) tree conflict should be resolved to >> a text conflict automatically or not; but I'm pretty sure it can be done >> without introducing multiple-source or multiple-target moves. > Well, I'd love it if you can say how. Thinking about that. Converting intuition to algebra is not always trivial or obvious. :) -- Brane -- Branko Čibej | Director of Subversion WANdisco // Non-Stop Data e. br...@wandisco.com