You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by ju...@apache.org on 2015/05/27 23:07:38 UTC

svn commit: r1682120 - /subversion/branches/move-tracking-2/BRANCH-README

Author: julianfoad
Date: Wed May 27 21:07:38 2015
New Revision: 1682120

URL: http://svn.apache.org/r1682120
Log:
On the 'move-tracking-2' branch: Update TODO list in BRANCH-README.

* BRANCH-README
  Update.

Modified:
    subversion/branches/move-tracking-2/BRANCH-README

Modified: subversion/branches/move-tracking-2/BRANCH-README
URL: http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/BRANCH-README?rev=1682120&r1=1682119&r2=1682120&view=diff
==============================================================================
--- subversion/branches/move-tracking-2/BRANCH-README (original)
+++ subversion/branches/move-tracking-2/BRANCH-README Wed May 27 21:07:38 2015
@@ -72,11 +72,62 @@ Work on this branch:
       provide a UI for element-based addressing ('mv e101:foo e103:foo'?)
 
     Bigger things to do:
-      "replay": convert committed changes to an edit drive
+
+      Build a mock WC:
+
+        1. "Check out" a given rev by starting an in-memory txn based
+          on that rev.
+
+        2. Make edits in this txn.
+
+        3. Start a commit, get a new txn based on repository head.
+
+        4. Replay the WC txn's changes into the commit txn, and commit it.
+
+      "Replay" API: convert committed changes to an edit drive
+
+        * A txn must keep track of which EIDs in it were previously
+          known and which are new in that txn.
+
+        * The 'replay' function must tell the driven editor which EIDs
+          are previously known and which are to be considered as new.
+
+        * The editor API must accept "new" EIDs in all EID contexts:
+          including as a parent-eid, or as a subtree-root eid, not only
+          as the primary EID of the element the method is operating on.
+          That will allow the operations on elements to come in truly
+          independent order: it will not be necessary to 'create' a
+          directory before any other operation can refer to that
+          directory's new EID as a parent-eid, for example.
+
+        * The editor must translate incoming 'new' EIDs if they are not
+          already unique between the edit driver and edit receiver. For
+          example, if the driver knows EIDs [0..60] are pre-existing, and
+          chooses to use EIDs [61...] for 'new' elements, and the
+          receiver's txn already uses EIDs [0..70] then it must translate
+          incoming EIDs [61..70] to some other range.
+
       heuristic conversion of old repositories:
         synthesize element tracking info (instead of aborting) when reading
         a revision that was committed by a non-move-tracking client
 
+    Tidying things to do:
+
+      Combine editor3 methods 'instantiate' and 'alter' into a single
+      method.
+
+        They have basically the same meaning apart from the precondition
+        (does or does not already exist) and the pre-existence should
+        *not* be considered, I think, because ... idempotency?
+        Likewise, 'delete' should not care if it was already deleted.
+
+      Create editor vtable methods for all editor interface functions.
+
+        Currently, some functions bypass the vtable. They are broken if
+        they use the editor private data structure and if they are invoked
+        on a wrapper editor (such as the 'debug editor') because in that
+        case they dereference the wrapper editor's private data struct
+        instead of the intended editor's.
 
   * The model.