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/04/01 15:40:27 UTC

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

Author: julianfoad
Date: Wed Apr  1 13:40:27 2015
New Revision: 1670646

URL: http://svn.apache.org/r1670646
Log:
On the 'move-tracking-2' branch: Update 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=1670646&r1=1670645&r2=1670646&view=diff
==============================================================================
--- subversion/branches/move-tracking-2/BRANCH-README (original)
+++ subversion/branches/move-tracking-2/BRANCH-README Wed Apr  1 13:40:27 2015
@@ -38,12 +38,17 @@ Work on this branch:
       diff
       merge
 
-    To do:
-      "replay": convert committed changes to an edit drive
-      dissolve (unbranchify)
+    UI things to do:
+      implement a 'dissolve' (unbranchify) command
       provide a way to specify a mixed-rev base state
-      synthesize element tracking info (instead of aborting) when reading
+      provide a UI for element-based addressing ('mv e101:foo e103:foo'?)
+
+    Bigger things to do:
+      "replay": convert committed changes to an edit drive
+      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
+      implement a back-in-history variant of branchify/unbranchify
 
 
   * The model.
@@ -56,28 +61,50 @@ Work on this branch:
         that is the same across all branches in a family?
 
 
-  * Develop a 'commit editor' interface supporting moves.
-
-    See subversion/include/private/svn_editor3e.h
-    and subversion/include/private/svn_editor3p.h
+  * A 'commit editor' interface supporting moves
 
     STATUS
 
-    This looks like it's panning out OK.
+    First I tried:
 
-    ### Out-of-date
-    Two versions are declared (in the same struct): 'incremental' and
-    'independent per-node changes'. Need eventually to choose one and
-    lose the other. It's not a question of one's right and one's wrong;
-    both are correct. I think the 'independent per-node changes' one is
-    ultimately better and easier to use, while the 'incremental' one is
-    easier to start using when we're starting from an Ev1 code base.
+        Type 1: stateful/incremental; path-based addressing
+
+        (subversion/include/private/svn_editor3p.h)
+
+    This is an evolution of the old delta editor, trying to add on moves.
+    Starting from an Ev1 code base, this one seems easier to start using,
+    as the style is more familiar.
 
     Ev1->Ev3->Ev1 shims are written, using the 'incremental' API. Tests
     pass with double-shim conversions at RA layer and repos layer. (One
     svnlook test fails due to svnlook reporting a no-op change as a
     change.)
 
+    However, this version of the editory is not complete with respect to
+    branching: it only provides the operations that are needed *within* a
+    branch. It could, I suppose, be extended to support operations on
+    branches, including both the 'branching' operation itself, and also
+    dealing with sub-branches found in the scope of subtree operations
+    such as move, copy, and delete.
+
+    However, now I believe the future lies in:
+
+        Type 2: stateless/independent per-element changes
+
+        (subversion/include/private/svn_element.h,
+         subversion/include/private/svn_branch.h,
+         subversion/include/private/svn_editor3e.h)
+
+    (The functionality is currently partially encapsulated in
+    an 'editor' class with a vtable of methods, and partially
+    provided as plain functions in svn_branch.h. This needs to be
+    sorted out.)
+
+    I think this one is ultimately better and easier to use.
+
+    I think it's not a question of one way is right and one is wrong;
+    rather, both are possible correct approaches.
+
 
   * Adapt the editor as necessary to use as an 'update editor'.