view mercurial-vendor-branches.tex @ 305:1df5191d8e80

Fix front page
author Martin Geisler <mg@aragost.com>
date Wed, 08 Jun 2011 22:50:54 +0200
parents f73da41a4f51
children 7788b512c5bd
line wrap: on
line source

\begin{frame}{Vendor Branches in Mercurial}
  High-level view of vendor branches:
  \begin{center}
    \begin{tikzpicture}[start chain]
      \path[use as bounding box] (-2, 0) rectangle (8.5, 1);
      \tikzstyle{rev}+=[on chain, minimum size=4mm]
      \tikzstyle{libfoo}=[rev, draw=purple!50!black!50, top
        color=white, bottom color=purple!50!black!20]
      \tikzset{node distance=8mm and 10mm, on grid}
      \tikzstyle{join-se}=[out=0, in=90]
      \tikzstyle{join-ne}=[out=90, in=180]

      \node<1->[left=of chain-1, anchor=west, xshift=-1cm] {default:};
      \node<1->[rev, join] {};
      \node<1->[rev, join] (a) {};
      \node<2->[libfoo, join=with a by join-ne, above right=of a] (v1) {};
      %\draw<2->[thick] (v1.north) -- +(0, 0.2) node[tag,above] {libfoo 1.0};

      \node<2->[above left=of chain-1, anchor=west, xshift=-1cm] {libfoo:};
      \node<3->[rev, join=by join-se, join=with a, below right=of v1] {};
      \node<4->[rev, join] {};
      \node<5->[rev, join] (b) {};
      \node<6->[libfoo, join=with v1, above right=of b] (v2) {};
      %\draw<6->[thick] (v2.north) -- +(0, 0.2) node[tag,above] {libfoo 2.0};
      \node<7->[rev, join=by join-se, join=with b, below right=of v2] {};
      \node<8->[rev, join] {};
    \end{tikzpicture}
  \end{center}

  \onslide<9->

  This workflow lets you:
  \begin{itemize}
  \item clearly distinguish between upstream code and your code
  \item directly modify libraries in your codebase
  \item<10-> Mercurial knows exactly what to merge
  \end{itemize}
\end{frame}