chiark / gitweb /
strategy: define W in Notation
[topbloke-formulae.git] / strategy.tex
index 253ffc31fb1340fbd8dff16516d6caa0f8b33262..27c9fd82b98d79868af1d126318e16004d42c2ae 100644 (file)
@@ -54,6 +54,19 @@ $\bigforall_{E \in \pendsof{\set X}{\p}} E \le T$
 $\bigcup_{\p \in \allpatches} \set H^{\pn} \cup \set H^{\py}$.
 All the input commits to the update algorithm.  (See below.)
 
+\item[ $\set H^{\pc^{_=/-}}$ ]
+
+The existing head commit(s) $\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.
+Obtained from the function $h$ (see below).
+
+\item[ $W$ ]
+
+During the Traversal phase, when we generate new commits, the working
+head of the branch we are working on.  Starts at $W_0$, updated as the
+algorithm progresses, and ultimately used to set $T$.
+
 %\item[ $\set E_{\pc}$ ]
 %$ \bigcup_i \pendsof{S_{\pc,i}}{\pc} $.
 %All the ends of $\pc$ in the sources.
@@ -76,8 +89,12 @@ all of its dependencies will be updated.
 
 \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.
+
+\item[ $w : \pc^{+/-} \mapsto W_0^{\pc^{+/-}}$ ]
+
+Function for getting the existing local head of the branch
+$\pc^{+/-}$.  I.e., the current value of the branch ref for $\pc^{+/-}$.
+$W_0^{\pc^{+/-}} \in \set H$.
 
 \item[ $g : \pc, \Gamma \mapsto \Gamma'$ ]
 Function to allow explicit adjustment of the direct dependencies
@@ -119,22 +136,9 @@ $\allreach$ varies over time as we generate more commits.  Each
 commit we generate will have only reachable commits as ancestors, so
 generating a new commit (only) adds that new commit to $\allreach$.
 
-\item[ $\allreachof{\py}$ ]
-The set of reachable commits at the point where we have just generated
-$\tippy$, i.e. just after $\alg{Merge-Tip}(\p)$.
+\item[ $\allreachof{\pn}$, $\allreachof{\py}$ ]
+The sets of reachable commits at the point where we have just generated
+$\tippn$ or $\tippy$, i.e. just after $\alg{Merge-Base}(\p)$ or
+$\alg{Recreate-Base}(\p)$, or $\alg{Merge-Tip}(\p)$, respectively.
 
 \end{basedescript}
-
-\stdsection{ WIP tip satisfaction, reachable commits }
-
-We preserve/ensure
-$$ \tippy >= \pendsof{\allreach_{\py}}{\py} $$
-($\tippy$ is computed during traversal for the patch $\p$)
-
-We ensure this property by:
-  - we do not generate any commits for py other than
-    during Merge-Tip
-  - so at the start of Merge-Tip pendsof (O, py) = pendsof (U, py)
-  - Merge-Tip itself wip wip wip
-
-