changeset 158:1def7cfae69f

Split off slides on underlying history model.
author Martin Geisler <mg@aragost.com>
date Tue, 27 Apr 2010 09:20:28 +0200
parents 8f625aa11c10
children 14243749c5aa
files immutable-history.tex mercurial.tex model.tex
diffstat 3 files changed, 64 insertions(+), 63 deletions(-) [+]
line wrap: on
line diff
new file mode 100644
--- /dev/null
+++ b/immutable-history.tex
@@ -0,0 +1,27 @@
+\begin{frame}{Immutable History}
+  SHA-1 hashes as changeset IDs have some consequences:
+  \begin{itemize}
+  \item a changeset ID is a hash of the entire history
+  \item changing history changes subsequent changesets
+  \item history is immutable, you can only make new history:
+    \bigskip
+
+    \begin{tikzpicture}[start chain]
+      \tikzstyle{rev}+=[on chain, join, minimum size=6mm]
+      \tikzset{node distance=10mm and 12mm, on grid}
+      \node[rev] {$A$};
+      \node[rev] {$B$};
+
+      \begin{scope}[start branch=changed]
+        \node<2->[rev,on chain=going below right] {$C'$};
+        \node<2->[rev] {$D'$};
+        \node<2->[rev] {$E'$};
+      \end{scope}
+
+      \only<3>{\tikzstyle{rev}+=[join=by {black!30!white},opacity=0.3]}
+      \node[rev] {$C$};
+      \node[rev] {$D$};
+      \node[rev] {$E$};
+    \end{tikzpicture}
+  \end{itemize}
+\end{frame}
--- a/mercurial.tex
+++ b/mercurial.tex
@@ -135,69 +135,8 @@
 
 \subsection{The Underlying Model}
 
-\begin{frame}{The Underlying Model}
-  A Mercurial changeset conceptually consist of:
-  \begin{itemize}
-  \item 0--2 parent changeset IDs:
-    \begin{itemize}
-    \item root changeset has no parents
-    \item normal changesets have one parent
-    \item merge changesets have two parents
-    \end{itemize}
-  \item date, username, commit message
-  \item difference from first parent changeset
-  \item changeset ID is computed as SHA-1 hash of the above
-  \item makes it impossible to inject \alert{malicious code} on server
-  \end{itemize}
-
-  \begin{center}
-    \begin{tikzpicture}[start chain]
-      \tikzstyle{rev}+=[on chain, minimum size=5mm, font=\small]
-      \tikzset{node distance=8mm and 10mm, on grid}
-
-      \node[rev,join] {};
-      \node[rev,join] {};
-      \node[rev,join] (x) {};
-      \node[rev,join, above right=of x] (y) {};
-      \node[rev,join] (a) {};
-      \node[rev,join=with x, below right=of x] (z) {};
-      \node[rev,join] {};
-      \node[rev,join] {};
-      \node[rev,join] (w) {};
-      \node[rev,join, above right=of w] (b) {};
-      \node[rev,join] {};
-      \draw[->] (a) to[out=0, in=150] (b);
-    \end{tikzpicture}
-  \end{center}
-\end{frame}
-
-\begin{frame}{Immutable History}
-  SHA-1 hashes as changeset IDs have some consequences:
-  \begin{itemize}
-  \item a changeset ID is a hash of the entire history
-  \item changing history changes subsequent changesets
-  \item history is immutable, you can only make new history:
-    \bigskip
-
-    \begin{tikzpicture}[start chain]
-      \tikzstyle{rev}+=[on chain, join, minimum size=6mm]
-      \tikzset{node distance=10mm and 12mm, on grid}
-      \node[rev] {$A$};
-      \node[rev] {$B$};
-
-      \begin{scope}[start branch=changed]
-        \node<2->[rev,on chain=going below right] {$C'$};
-        \node<2->[rev] {$D'$};
-        \node<2->[rev] {$E'$};
-      \end{scope}
-
-      \only<3>{\tikzstyle{rev}+=[join=by {black!30!white},opacity=0.3]}
-      \node[rev] {$C$};
-      \node[rev] {$D$};
-      \node[rev] {$E$};
-    \end{tikzpicture}
-  \end{itemize}
-\end{frame}
+\include{model}
+\include{immutable-history}
 
 \subsection{Workflows}
 
new file mode 100644
--- /dev/null
+++ b/model.tex
@@ -0,0 +1,35 @@
+\begin{frame}{The Underlying Model}
+  A Mercurial changeset conceptually consist of:
+  \begin{itemize}
+  \item 0--2 parent changeset IDs:
+    \begin{itemize}
+    \item root changeset has no parents
+    \item normal changesets have one parent
+    \item merge changesets have two parents
+    \end{itemize}
+  \item date, username, commit message
+  \item difference from first parent changeset
+  \item changeset ID is computed as SHA-1 hash of the above
+  \item makes it impossible to inject \alert{malicious code} on server
+  \end{itemize}
+
+  \begin{center}
+    \begin{tikzpicture}[start chain]
+      \tikzstyle{rev}+=[on chain, minimum size=5mm, font=\small]
+      \tikzset{node distance=8mm and 10mm, on grid}
+
+      \node[rev,join] {};
+      \node[rev,join] {};
+      \node[rev,join] (x) {};
+      \node[rev,join, above right=of x] (y) {};
+      \node[rev,join] (a) {};
+      \node[rev,join=with x, below right=of x] (z) {};
+      \node[rev,join] {};
+      \node[rev,join] {};
+      \node[rev,join] (w) {};
+      \node[rev,join, above right=of w] (b) {};
+      \node[rev,join] {};
+      \draw[->] (a) to[out=0, in=150] (b);
+    \end{tikzpicture}
+  \end{center}
+\end{frame}