From d1afd16455a7de8e90e79610f5af798faad0bd44 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Mon, 5 Mar 2012 18:27:53 +0000 Subject: [PATCH] wip anticommit --- article.tex | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/article.tex b/article.tex index 1e42670..01800f9 100644 --- a/article.tex +++ b/article.tex @@ -32,6 +32,10 @@ \newcommand{\py}{\pay{P}} \newcommand{\pn}{\pan{P}} +\newcommand{\pr}{\pa{R}} +\newcommand{\pry}{\pay{R}} +\newcommand{\prn}{\pan{R}} + %\newcommand{\hasparents}{\underaccent{1}{>}} %\newcommand{\hasparents}{{% % \declareslashed{}{_{_1}}{0}{-0.8}{>}\slashed{>}}} @@ -334,6 +338,29 @@ $\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{Anticommit} + +Given $L, R^+, R^-$ where +$\patchof{R^+} = \pry, \patchof{R^-} = \prn$. +Construct $C$ which has $\pr$ removed. +Used for removing a branch dependency. +\gathbegin + C \hasparents \{ L \} +\gathnext + \patchof{C} = \patchof{L} +\gathnext + D \isin C \equiv + \begin{cases} + R \in \py : & \baseof{R} \ge \baseof{L} + \land [\baseof{L} = M \lor \baseof{L} = \baseof{M}] \\ + R \in \pn : & R \ge \baseof{L} + \land M = \baseof{L} \\ + \text{otherwise} : & \false + \end{cases} +\end{gather} + +xxx want to prove $D \isin C \equiv D \not\in pry \land D \isin L$. + \section{Merge} Merge commits $L$ and $R$ using merge base $M$ ($M < L, M < R$): -- 2.30.2