chiark
/
gitweb
/
~ian
/
topbloke-formulae.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
strategy: define W in Notation
[topbloke-formulae.git]
/
merge.tex
diff --git
a/merge.tex
b/merge.tex
index 1d22aec19d64ddcf5fd357660c3ca9580e3f546a..ba7f0f84962b25b5da791f7508388de2c7e87124 100644
(file)
--- a/
merge.tex
+++ b/
merge.tex
@@
-35,7
+35,7
@@
satisfied; in particular, provided that $L \ge \baseof{R}$.
\lor
R \in \foreign
\lor
\lor
R \in \foreign
\lor
- R \in \pqy
+ ( R \in \pqy \land \pq \neq \p )
\big]
}\]
\[ \eqn{ Merge Acyclic }{
\big]
}\]
\[ \eqn{ Merge Acyclic }{
@@
-59,21
+59,21
@@
satisfied; in particular, provided that $L \ge \baseof{R}$.
\right]
}\]
\[ \eqn{ Suitable Tips }{
\right]
}\]
\[ \eqn{ Suitable Tips }{
- \bigforall_{\p \
neq \patchof{L}, \; C \haspatch \p
}
+ \bigforall_{\p \
patchisin C, \; \py \neq \patchof{L}
}
\bigexists_T
\pendsof{J}{\py} = \{ T \}
\land
\forall_{E \in \pendsof{K}{\py}} T \ge E
, \text{where} \{J,K\} = \{L,R\}
}\]
\bigexists_T
\pendsof{J}{\py} = \{ T \}
\land
\forall_{E \in \pendsof{K}{\py}} T \ge E
, \text{where} \{J,K\} = \{L,R\}
}\]
-\[ \eqn{ Foreign Merge
s
}{
+\[ \eqn{ Foreign Merge }{
\isforeign{L} \implies \isforeign{R}
}\]
\subsection{Non-Topbloke merges}
We require both $\isforeign{L}$ and $\isforeign{R}$
\isforeign{L} \implies \isforeign{R}
}\]
\subsection{Non-Topbloke merges}
We require both $\isforeign{L}$ and $\isforeign{R}$
-(Foreign Merge
s
, above).
+(Foreign Merge, above).
I.e. not only is it forbidden to merge into a Topbloke-controlled
branch without Topbloke's assistance, it is also forbidden to
merge any Topbloke-controlled branch into any plain git branch.
I.e. not only is it forbidden to merge into a Topbloke-controlled
branch without Topbloke's assistance, it is also forbidden to
merge any Topbloke-controlled branch into any plain git branch.
@@
-131,6
+131,14
@@
$\qed$
\subsection{Coherence and Patch Inclusion}
\subsection{Coherence and Patch Inclusion}
+$C$ satisfies
+\gathbegin
+ C \haspatch \p \lor C \nothaspatch \p
+\gathnext
+C \haspatch \p \equiv
+ \stmtmergeof{L \haspatch \p}{M \haspatch \p}{R \haspatch \p}
+\end{gather}
+which (given Coherence of $L$,$M$,$R$) is equivalent to
$$
\begin{cases}
L \nothaspatch \p \land R \nothaspatch \p : & C \nothaspatch \p \\
$$
\begin{cases}
L \nothaspatch \p \land R \nothaspatch \p : & C \nothaspatch \p \\
@@
-146,7
+154,7
@@
$$
$D \not\isin L \land D \not\isin R$. $C \not\in \py$ (otherwise $L
\in \py$ ie $L \haspatch \p$ by Tip Own Contents for $L$).
So $D \neq C$.
$D \not\isin L \land D \not\isin R$. $C \not\in \py$ (otherwise $L
\in \py$ ie $L \haspatch \p$ by Tip Own Contents for $L$).
So $D \neq C$.
-Applying \commitmergename gives $D \not\isin C$ i.e. $C \nothaspatch \p$.
+Applying \commitmergename
\
gives $D \not\isin C$ i.e. $C \nothaspatch \p$.
OK.
\subsubsection{For $L \haspatch \p, R \haspatch \p$:}
OK.
\subsubsection{For $L \haspatch \p, R \haspatch \p$:}
@@
-323,7
+331,7
@@
$\qed$
\subsection{Foreign Ancestry}
Only relevant if $\isforeign{L}$, in which case
\subsection{Foreign Ancestry}
Only relevant if $\isforeign{L}$, in which case
-$\isforeign{C}$ and by Foreign Merge
s
$\isforeign{R}$,
+$\isforeign{C}$ and by Foreign Merge $\isforeign{R}$,
so Totally Foreign Ancestry applies. $\qed$
\subsection{Bases' Children}
so Totally Foreign Ancestry applies. $\qed$
\subsection{Bases' Children}
@@
-344,5
+352,6
@@
$R$.
Other possibilities for $L \in \pn$ are excluded by Base Merge.
Other possibilities for $L \in \pn$ are excluded by Base Merge.
-If $L \in \foreign$: not applicable for $L$; nor for $R$, by Foreign Merge
s
.
+If $L \in \foreign$: not applicable for $L$; nor for $R$, by Foreign Merge.
+$\qed$