changeset 361:8ca33c2f1b7b

Notes about the rebase extension
author Martin Geisler <mg@aragost.com>
date Fri, 22 Jun 2012 14:45:03 +0200
parents c825a02db143
children 33add2a99379
files rebase-notes.tex
diffstat 1 files changed, 83 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
new file mode 100644
--- /dev/null
+++ b/rebase-notes.tex
@@ -0,0 +1,83 @@
+\documentclass[t,noamsthm,xcolor=dvipsnames]{beamer}
+\input{preambel}
+\title{Mercurial's Rebase Extension}
+\author{Martin Geisler
+  \texorpdfstring{\\$\langle$\texttt{mg@aragost.com}$\rangle$}
+                 {<mg@aragost.com>}}
+\date{CCDC\\Cambridge, UK\\June 25th--27th, 2012}
+
+\begin{document}
+
+\begin{frame}[plain]
+  \maketitle
+  \begin{tikzpicture}[overlay, remember picture]
+    \node[above right] at (current page.south west)
+         {\includegraphics[height=3cm]{pixelman-front}};
+  \end{tikzpicture}
+\end{frame}
+
+\include{rebase}
+
+\tikzstyle{rev}+=[on chain, minimum size=6mm]
+\tikzset{node distance=10mm and 12mm, on grid}
+
+\begin{frame}{Rebase Details}
+  Rebase uses \alert{repeated merges}:
+  \smallskip
+
+  \begin{tikzpicture}[start chain]
+    \node[rev, join] {$A$};
+    \node[rev, join] {$B$};
+    \node[rev, join] {$C$};
+    \begin{scope}[start branch=pulled]
+      \node[rev, join=by join-sw, on chain=going below right] {$X$};
+      \node[rev, join] {$Y$};
+      \node<2->[rev, join] {$D'$};
+      \node<3->[rev, join] {$E'$};
+    \end{scope}
+
+    \node<1-3>[rev, join] {$D$};
+    \node<1-3>[rev, join] {$E$};
+    \node<4->[rev,join=by {black!30!white},opacity=0.3] {$D$};
+    \node<4->[rev,join=by {black!30!white},opacity=0.3] {$E$};
+
+    \draw<2-3>[red, ->] (chain-4) to[out=-35, in=145] (chain/pulled-4);
+    \draw<3>[red, ->] (chain-5) to[out=0, in=145] (chain/pulled-5);
+    \draw<4->[red!30!white, ->] (chain-4) to[out=-35, in=145] (chain/pulled-4);
+    \draw<4->[red!30!white, ->] (chain-5) to[out=0, in=145] (chain/pulled-5);
+  \end{tikzpicture}
+
+  \onslide<5->
+
+  \begin{itemize}
+  \item You handle smaller parts of the merge at a time
+  \item Conflicts can differ from \cmd{hg merge}
+  \item Can abort rebase by not deleting source branch
+  \end{itemize}
+
+\end{frame}
+
+\begin{frame}{Consequences of Rebase}
+  Good:
+  \begin{itemize}
+  \item Creates an easy-to-read linear history
+  \item Avoids trivial and meaningless merges
+  \item Feature branch is not mixed with mainline changes
+  \end{itemize}
+
+  \pause
+  Bad:
+  \begin{itemize}
+  \item Prevents collaboration
+  \item Intermediate changesets might not have been tested
+  \end{itemize}
+\end{frame}
+
+%\appendix
+%\newcounter{finalframe}
+%\setcounter{finalframe}{\value{framenumber}}
+%\setcounter{framenumber}{\value{finalframe}}
+
+\end{document}
+
+% LocalWords:  changeset changesets