view git-branches.tex @ 357:b3bd9bc3e5f8

Remove extra slides for now
author Martin Geisler <mg@aragost.com>
date Thu, 21 Jun 2012 16:52:16 +0200
parents 2815efa41c1f
children
line wrap: on
line source

\begin{frame}{Branches in Git}
  \tikzstyle{rev}+=[on chain, minimum size=5mm]
  \tikzset{node distance=10mm and 12mm, on grid}

  Similar to using bookmarks in Mercurial:
  \begin{itemize}
    \item branch pointer advances on commit:

      \begin{tikzpicture}[start chain]
        \path (0, -1) rectangle (6, 1.5);
        \node<1->[rev, join] {};
        \node<1> [rev, join, pin=above:origin/master, pin=below:master] {};
        \node<2->[rev, join, pin=above:origin/master] {};
        \node<2>[rev, join, pin=below:master] {};
        \node<3->[rev, join] {};
        \node<3->[rev, join, pin=below:master] {};
      \end{tikzpicture}

    \item<4-> pull and merge of changesets from others:

      \begin{tikzpicture}[start chain]
        \path (0, -1) rectangle (6, 1.5);
        \node[rev, join] {};
        \node<4>[rev, join, pin=above:origin/master] {};
        \node<5->[rev, join] {};
        \begin{scope}[start branch=pulled]
          \node<5->[rev, join=by join-nw, on chain=going above right] {};
          \node<5->[rev, join] {};
          \node<5>[rev, join, pin=right:origin/master] {};
          \node<6->[rev, join] {};
        \end{scope}
        \node<4->[rev, join] {};
        \node<4,5>[rev, join, pin=below:master] {};
        \node<6->[rev, join] {};

        \begin{scope}[continue branch=pulled]
          \node<6->[rev,on chain=going below right,join=by join-en,
            join=with chain-end, pin=right:origin/master,
            pin=below:master] {};
        \end{scope}

      \end{tikzpicture}

  \end{itemize}
\end{frame}

\begin{frame}{Deleting a Git Branch}
  \tikzstyle{rev}+=[on chain, minimum size=5mm]
  \tikzset{node distance=10mm and 12mm, on grid}

  Git can \alert{garbage collect} changesets:
  \begin{itemize}
  \item repository with experimental branch:

    \begin{tikzpicture}[start chain]
      \path (0, -1) rectangle (6, 1.5);
      \node[rev, join] {};
      \node[rev, join] {};
      \begin{scope}[start branch=pulled]
        \node<1>[rev, join=by join-nw, on chain=going above right] {};
        \node<1>[rev, join] {};
        \node<1>[rev, join, pin=right:experiments] {};

        \node<2->[rev, opacity=0.3, join=by {join-nw, black!30!white},
          on chain=going above right] {};
        \node<2->[rev, opacity=0.3, join=by {black!30!white}] {};
        \node<2->[rev, opacity=0.3, join=by {black!30!white}] {};
      \end{scope}
      \node[rev, join] {};
      \node[rev, join, pin=below:master] {};
    \end{tikzpicture}

  \item<2-> delete branch with \cmd{git branch -D experiments}

  \item<2-> faint commits  may disappear on next \cmd{git gc}

  \item<3-> \alert{delete on server} with \cmd{git push origin
    \alert{:}experiments}
  \end{itemize}
\end{frame}