chiark / gitweb /
strategy: wip ends reachability before py only
[topbloke-formulae.git] / strategy.tex
index 1e8ee0156f5846bec3d54e4852396c703c432564..833f5bdfe06fe6c2846815c66dcde91002d674be 100644 (file)
@@ -74,7 +74,7 @@ All the input commits to the update algorithm.  (See below.)
 The topmost patch which we are trying to update.  This and
 all of its dependencies will be updated.
 
-\item[ $h : \pc^{+/-} \mapsto \set H_{\pc^{+/-}}$ ]
+\item[ $h : \pc^{+/-} \mapsto \set H^{\pc^{+/-}}$ ]
 Function for getting the existing heads $\set H$ of the branch $\pc^{+/-}$.
 These are the heads which will be merged and used in this update.
 This will include the current local and remote git refs, as desired.
@@ -104,8 +104,56 @@ during the update algorithm).
 
 \item[ $\tipcn, \tipcy$ ]
 The new tips of the git branches $\pcn$ and $\pcy$, containing
-all the correct commits (and the correct other patches), as
-generated by the Traversal phase of the update algorithm.
+all the appropriate commits (and the appropriate other patches),
+as generated by the Traversal phase of the update algorithm.
 
 \end{basedescript}
 
+\stdsection{ WIP tip satisfaction, reachable commits }
+
+Set of all reachable commits, O.
+
+A reachable commit is one we might refer to explicitly in any of these
+algorithms, and any ancestor of such a commit.  We explicitly
+enumerate all of the input commits (U).  And each commit we generate
+will be descended from zero or more of these.
+
+Naturally this set varies over time as we generate more commits.  We
+write O_pyn for the set of reachable commits at the point where we
+have just generated T_pyn.
+
+We preserve/ensure
+  Tip_Pyn >= pendsof( O_pyn, Pyn )
+(Tip_pyn is computed during traversal for the patch p)
+
+We ensure this property by:
+  - we do not generate any commits for pyn other than
+    during traversal for pyn
+  - so at the start of traversal pendsof ( O, pyn) = pendsof (U, pyn)
+  - the traversal steps will takes those pends
+
+  - during traversal for the patch set pyn
+    pendsof 
+
+  - arranging that during traversal for the patch set pyn
+     
+, we firstly
+    compute a tip_pyn which is >= pendsof(O) as follows:
+      there is a set of relevant ends
+              pendsof(U, 
+
+      we initially set T
+
+    by virtue of it being  >= pendsof(U) \cup
+    all lower tip_qyn
+ - 
+
+We do this by:
+ - firstly, Tip_pyn is only valid af
+  
+
+Set of all reachable commits in a particular patch set.
+ This consists of
+  - input commits
+  - 
+