view rebase-notes.tex @ 364:df4a5c5570e7 default tip

some personal tweaks
author Jordi Gutiérrez Hermoso <jordigh@octave.org>
date Wed, 19 Dec 2012 15:35:01 -0500 (2012-12-19)
parents 33add2a99379
children
line wrap: on
line source
\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 Less clutter by avoiding trivial 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