\section{Traversal phase --- algorithm}
(In general, unless stated otherwise below, when we generate a new
-commit $C$ using one of the commit kind algorith, we update
+commit $C$ using one of the commit kind recipies, we update
$W \assign C$. In any such case where we say we're going to Merge
with $L = W$, if $R \ge W$ we do not Merge but instead simply set
$W \assign R$.)
\statement{Correct Base}{
\baseof{\tipcy} = \tipcn
}
-\statement{Base Ends Supreme}{
- \tipcn \ge \pendsof{\allsrcs}{\pcn}
+\statement{Base Correct Contents}{
+ \tipcn \haspatch \pa E
+ \equiv
+ \pa E \isdep \pc
}
-\statement{Tip Ends Supreme}{
+\statement{Tip Exceeds Inputs}{
\tipcy \ge \pendsof{\allsrcs}{\pcy}
}
+\statement{Base Exceeds Inputs' Bases}{
+ \bigforall_{E \in \pendsof{\allsrcs}{\pcy}} \tipcn \ge \baseof{E}
+}
+\statement{Base Exceeds Base Inputs}{
+ \bigforall_{H \in \set H^{\pn}} \tipcn \ge H
+}
\subsection{$\alg{Merge-Base}(\pc)$}
\begin{enumerate}
-\item For each $\pd \isdirdep \pc$, find a merge base
+\item For each $\hasdep$-maximal $\pd \isdirdep \pc$, find a merge base
$M \le W,\; \le \tipdy$ and merge $\tipdy$ into $W$.
That is, use $\alg{Merge}$ with $L = W,\; R = \tipdy$.
-(Dependency Merge.)
+(Base Dependency Merge.)
\item For each $S \in S^{\pcn}_i$, merge it into $W$.
That is, use $\alg{Merge}$ with $L = W,\; R = S,\; M = M^{\pcn}_i$.
Execute $\alg{Fixup-Base}(W,\pc)$.
+TODO define Fixup-Base
+
+\subsubsection{Result}
+
+If all of that was successful, let $\tipcn = W$.
\subsection{$\alg{Recreate-Base}(\pc)$}
\item
-Use $\alg{Create Base}$ with $L$ = $\pdy,\; \pq = \pc$ to generate $C$
+Use $\alg{Create Base}$ with $L$ = $\tipdy,\; \pq = \pc$ to generate $C$
and set $W \iassign C$. (Recreate Base Beginning.)
\item
\item
Declare that we contain all of the relevant information from the
-sources. That is, use $\alg{Pseudo-merge}$ with $L = W, \;
+sources. That is, use $\alg{Pseudo-Merge}$ with $L = W, \;
\set R = \{ W \} \cup \set S^{\pcn}$.
(Recreate Base Final Declaration.)
\item TODO what about non-Topbloke base branches
-\item Use $\alg{Pseudo-Merge}$ with $L = W,\; \set R = \{ \tipdn \}$.
-(Recreate Base Dependency Base Declaration.)
-
\item For all $\hasdep$-maximal $\pd' \isdirdep \pd$,
execute $\alg{Recreate-Recurse}(\pd')$.
+\item Use $\alg{Pseudo-Merge}$ with $L = W,\; \set R = \{ \tipdn \}$.
+(Recreate Base Dependency Base Declaration.)
+
\item Use $\alg{Merge}$ to apply $\pd$ to $W$. That is,
$L = W, \; R = \tipdy, \; M = \baseof{R} = \tipdn$.
(Recreate Reapply.)