Author: julianfoad
Date: Wed Jul 30 12:51:34 2014
New Revision: 1614640
URL: http://svn.apache.org/r1614640
Log:
On the 'moves-tracking-2' branch: Add comments.
* subversion/libsvn_delta/compat3.c
Add comments.
Modified:
subversion/branches/move-tracking-2/subversion/libsvn_delta/compat3.c
Modified: subversion/branches/move-tracking-2/subversion/libsvn_delta/compat3.c
URL:
http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/subversion/libsvn_delta/compat3.c?rev=1614640&r1=1614639&r2=1614640&view=diff
==============================================================================
--- subversion/branches/move-tracking-2/subversion/libsvn_delta/compat3.c
(original)
+++ subversion/branches/move-tracking-2/subversion/libsvn_delta/compat3.c Wed
Jul 30 12:51:34 2014
@@ -498,6 +498,22 @@ duplicate_child_changes(apr_hash_t *chan
* out-of-band cues. In fact, the code structure is likely to be
* unsuitable for processing moves.
*
+ * The design assumes that each Ev1 path maps to a different Ev3 node-branch.
+ *
+ * It works like this:
+ *
+ * +------+--------+
+ * | path | change |
+ * Ev1 --> +------+--------+ --> Ev3
+ * | ... | ... |
+ * | ... | ... |
+ *
+ * 1. Ev1 changes are accumulated in a per-path table, EB->changes.
+ * Changes are de-duplicated so there is only one change per path.
+ *
+ * 2. On Ev1 close-edit, walk through the table in a depth-first order,
+ * sending the equivalent Ev3 action for each change.
+ *
* ### This was designed (in its Ev2 form) for both commit and update
* editors, but Ev3 is currently only designed as a commit editor.
* Therefore 'update' functionality probably doesn't work, including:
@@ -1465,9 +1481,21 @@ svn_delta__delta_from_ev3_for_commit(
*
* Moves are converted to copy-and-delete, with the copy being from
* the source peg rev. (### Should it request copy-from revision "-1"?)
- */
-
-/* TODO
+ *
+ * It works like this:
+ *
+ * +------+--------+
+ * | path | change |
+ * Ev3 --> +------+--------+ --> Ev1
+ * | ... | ... |
+ * | ... | ... |
+ *
+ * 1. Ev3 changes are accumulated in a per-path table, EB->changes.
+ *
+ * 2. On Ev3 close-edit, walk through the table in a depth-first order,
+ * sending the equivalent Ev1 action for each change.
+ *
+ * TODO
*
* ### For changes inside a copied subtree, the calls to the "open dir"
* and "open file" Ev1 methods may be passing the wrong revision