changeset 41:cf8d03f1b3f0

Described rebase.
author Martin Geisler <mg@lazybytes.net>
date Thu, 20 Aug 2009 15:23:11 +0200
parents d334c34ab2c1
children 9bc18f9d1f8e
files mercurial.tex
diffstat 1 files changed, 57 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial.tex
+++ b/mercurial.tex
@@ -568,7 +568,63 @@
 \subsection{Changing History}
 
 \begin{frame}{Moving Changesets Around}
-  The \hgext{rebase} extension
+  \tikzstyle{rev}+=[on chain, join, minimum size=5mm]
+  \tikzset{node distance=4mm and 6mm}
+
+  Tired of all those merges? Use the \hgext{rebase} extension!
+  \begin{itemize}
+  \item Revision graph:
+
+    \begin{tikzpicture}[start chain]
+      \node[rev] {$A$};
+      \node[rev] {$B$};
+      \node[rev] {$C$};
+      \begin{scope}[start branch=pulled]
+        \node<3->[rev,on chain=going below right] {$X$};
+        \node<3->[rev] {$Y$};
+        \node<3->[rev] {$Z$};
+      \end{scope}
+      \node<2->[rev] {$D$};
+      \node<2->[rev] {$E$};
+    \end{tikzpicture}
+
+  \item<4-> Merge:
+
+    \begin{tikzpicture}[start chain]
+      \node[rev] {$A$};
+      \node[rev] {$B$};
+      \node[rev] {$C$};
+      \begin{scope}[start branch=pulled]
+        \node[rev,on chain=going below right] {$X$};
+        \node[rev] {$Y$};
+        \node[rev] {$Z$};
+      \end{scope}
+      \node[rev] {$D$};
+      \node[rev] {$E$};
+      \begin{scope}[continue branch=pulled]
+        \node[rev,on chain=going above right,join=with chain-end] {$M$};
+      \end{scope}
+    \end{tikzpicture}
+
+  \item<5-> Rebase:
+
+    \begin{tikzpicture}[start chain]
+      \node[rev] {$A$};
+      \node[rev] {$B$};
+      \node[rev] {$C$};
+      \begin{scope}[start branch=pulled]
+        \node[rev,on chain=going below right] {$X$};
+        \node[rev] {$Y$};
+        \node[rev] {$Z$};
+        \node[rev] {$D'$};
+        \node[rev] {$E'$};
+      \end{scope}
+      \node[rev,join=by {black!30!white},opacity=0.3] {$D$};
+      \node[rev,join=by {black!30!white},opacity=0.3] {$E$};
+    \end{tikzpicture}
+
+  \item<6-> Beware: public changes should never be rebased.
+  \end{itemize}
 \end{frame}
 
 \begin{frame}{Maintaining Patch Series}