X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?p=topbloke-formulae.git;a=blobdiff_plain;f=article.tex;h=d85a022ff8fb8388f380325f4ffd4ed9e4330d5d;hp=a650f36ab9080f36c344bbb75ba27d0a6ce71837;hb=400772c417bd54383994df5a227df88adc769171;hpb=cdc4fccc58272bf57af3e04679d0cc10aaa9b09b diff --git a/article.tex b/article.tex index a650f36..d85a022 100644 --- a/article.tex +++ b/article.tex @@ -316,4 +316,33 @@ $\qed$ If $D = C$, trivial. For $D \neq C$: $D \isin C \equiv D \isin A \equiv D \le A \equiv D \le C$. $\qed$ +\section{Merge} + +Merge commits $L$ and $R$ using merge base $M$ ($M < L, M < R$): +\gathbegin + C \hasparents \{ L, R \} +\gathnext + \patchof{C} = \patchof{L} +\gathnext + D \isin C \equiv + \begin{cases} + (D \isin L \land D \isin R) \lor D = C : & \true \\ + (D \not\isin L \land D \not\isin R) \land D \neq C : & \false \\ + \text{otherwise} : & D \not\isin M + \end{cases} +\end{gather} + +\subsection{Conditions} + +\[ \eqn{ Merges Exhaustive }{ + L \in \py => \Bigl[ R \in \py \lor R \in \pn \Bigr] +}\] +\[ \eqn{ Tip Merge }{ + L \in \py \land R \in \py \implies \Bigl[ \text{TBD} \Bigr] +}\] +\[ \eqn{ Base Merge }{ + L \in \py \land R \in \pn \implies \Bigl[ R \ge \baseof{L} \land M = + \baseof{L} \Bigr] +}\] + \end{document}