Mercurial > hg > mercurial-talk
changeset 361:8ca33c2f1b7b
Notes about the rebase extension
author | Martin Geisler <mg@aragost.com> |
---|---|
date | Fri, 22 Jun 2012 14:45:03 +0200 (2012-06-22) |
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