X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?a=blobdiff_plain;f=article.tex;h=0428df707a2978eae6c336b40447f29b5b820385;hb=1814499fa14d3774567205fa57a95b3adbfe4fb5;hp=008229a17c249447403c8039618b8914ffc6f224;hpb=0fa67d5fbecdec4faf97bbfef6ec0ba27fa91548;p=topbloke-formulae.git diff --git a/article.tex b/article.tex index 008229a..0428df7 100644 --- a/article.tex +++ b/article.tex @@ -442,7 +442,45 @@ $D \isin C \equiv D \isin A \equiv D \le A \equiv D \le C$. $\qed$ \section{Create Base} -xxx tbd +Given $L$, create a Topbloke base branch initial commit $B$. +\gathbegin + B \hasparents \{ L \} +\gathnext + \patchof{B} = \pa{B} +\gathnext + D \isin B \equiv D \isin L \lor D = B +\end{gather} + +\subsection{Conditions} + +\[ \eqn{ Ingredients }{ + \patchof{L} = \pa{L} \lor \patchof{L} = \bot +}\] +\[ \eqn{ Non-recursion }{ + L \not\in \pa{B} +}\] + +\subsection{No Replay} + +If $\patchof{L} = \pa{L}$, trivial by Base Acyclic for $L$. + +If $\patchof{L} = \bot$, xxx + +Trivial from Base Acyclic for $L$. $\qed$ + +\subsection{Unique Base} + +Not applicable. $\qed$ + +\subsection{Tip Contents} + +Not applicable. $\qed$ + +\subsection{Base Acyclic} + +xxx + +xxx unfinished \section{Create Tip} @@ -482,8 +520,8 @@ By Unique Tip, $R^+ \le L$. By definition of $\base$, $R^- \le R^+$ so $R^- \le L$. So $R^+ \le C$ and $R^- \le C$. $\qed$ -(Note that the merge base $R^+ \not\le R^-$, i.e. the merge base is -later than one of the branches to be merged.) +(Note that $R^+ \not\le R^-$, i.e. the merge base +is a descendant, not an ancestor, of the 2nd parent.) \subsection{No Replay} @@ -573,7 +611,7 @@ $\qed$ \section{Merge} -Merge commits $L$ and $R$ using merge base $M$ ($M < L, M < R$): +Merge commits $L$ and $R$ using merge base $M$: \gathbegin C \hasparents \{ L, R \} \gathnext @@ -584,7 +622,9 @@ Merge commits $L$ and $R$ using merge base $M$ ($M < L, M < R$): We will occasionally use $X,Y$ s.t. $\{X,Y\} = \{L,R\}$. \subsection{Conditions} - +\[ \eqn{ Ingredients }{ + M \le L, M \le R +}\] \[ \eqn{ Tip Merge }{ L \in \py \implies \begin{cases}