On 30.08.2013 13:03, Julian Foad wrote: > I'm working on how the update editor can handle moves. It's more > complex than the commit editor, because there can be multiple > instances of the "same" repository node in the WC, so moves are not > necessarily unique. > > This is a copy of my notes in progress. I could use some suggestions > or thoughts if you have any?
It strikes me that if for update-like edits, which are driven by the server, the once rule is interpreted in terms of WC paths, not node URLs or node IDs; then the server already has all the information it needs to transform the working copy. Take your first multiple source example: | | +-- A mv--\ | | \ | +-- B mv--\ \ | \-\--> +-- C The working copy really doesn't have to know that both A and B became C. It only has to represent the final state. this can be described as: move A, C; delete B or move B, C; delete A and any text modifications are applied after the move. The only real difference between the two descriptions is that one of them /may/ be more efficient, in the sense that the delta that represents the text modifications on C may be smaller. But that's a minor optimization; if the server can do it, fine; if not, we're still better off than in the copy+delete case, especially for deep directory trees. -- Brane -- Branko Čibej | Director of Subversion WANdisco // Non-Stop Data e. br...@wandisco.com