X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=main.tex;h=7906b9cecae7edeec8d4b85b3659c357408ceb2d;hb=05393823d76fb3486311d7aa7695e392862a09eb;hp=df342a43c1f9a3349fcaf2cd8355fe63341708aa;hpb=9aeffae75825064d37a07e94d458660e86038a28;p=talk-dvcs-git.git diff --git a/main.tex b/main.tex index df342a4..7906b9c 100644 --- a/main.tex +++ b/main.tex @@ -1,3 +1,29 @@ +% +% Copyright (C) 2010-2011 Sebastian 'tokkee' Harl +% All rights reserved. +% +% Redistribution and use in source and binary forms, with or without +% modification, are permitted provided that the following conditions +% are met: +% 1. Redistributions of source code must retain the above copyright +% notice, this list of conditions and the following disclaimer. +% 2. Redistributions in binary form must reproduce the above copyright +% notice, this list of conditions and the following disclaimer in the +% documentation and/or other materials provided with the distribution. +% +% THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +% ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +% TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +% PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR +% CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +% EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +% PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; +% OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +% WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +% OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +% ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +% + \usetheme{default} \setbeamertemplate{navigation symbols}{} @@ -35,16 +61,19 @@ \author[Sebastian "`tokkee"' Harl]{Sebastian "`tokkee"' Harl\\ $<$tokkee@debian.org$>$} -%\institute{Debian RRDtool Team} +\institute{team(ix) GmbH} \date[ALIT 2011]{\textbf{Augsburger Linux-Infotag 2011}\\ 26.\ März 2011} \subject{Versionierung für OpenSourcler} \titlegraphic{ - \vspace*{-10mm} + \vspace*{-12mm} + \begin{minipage}[b]{19mm} + \includegraphics[height=10mm]{teamix_logo_cmyk.pdf} + \end{minipage} \hfill - \begin{minipage}[c]{13mm} + \begin{minipage}[b]{13mm} \includegraphics[height=25mm]{gitlogo.pdf} \end{minipage} } @@ -66,8 +95,11 @@ \end{tikzpicture} \end{textblock*} \begin{textblock*}{122mm}(3mm,85mm) + \begin{minipage}[c]{20mm} + \includegraphics[width=20mm]{teamix_logo_cmyk.pdf} + \end{minipage} \hfill - \begin{minipage}[c]{105mm} + \begin{minipage}[c]{93mm} \centering {\tiny \insertshorttitle{} \hspace{3mm}---\hspace{3mm} @@ -104,8 +136,11 @@ \end{tikzpicture} \end{textblock*} \begin{textblock*}{122mm}(3mm,85mm) + \begin{minipage}[c]{20mm} + \includegraphics[width=20mm]{teamix_logo_cmyk.pdf} + \end{minipage} \hfill - \begin{minipage}[c]{105mm} + \begin{minipage}[c]{93mm} \centering {\tiny \insertshorttitle{} \hspace{3mm}---\hspace{3mm} @@ -355,12 +390,14 @@ \begin{frameframe}{Arbeiten mit Git: Grundlagen} \begin{itemize} - \item $>>$ 100 einzelne Befehle + \item ca.\ 150 einzelne Befehle \item "`Porcelains"' und "`Plumbing"' - \item Dokumentation als Manpages - \texttt{git(7)} + \item Dokumentation als Manpages --- \texttt{git(7)} \item \texttt{git help}, \texttt{git $<$command$>$ -h} \item Benutzer Handbuch: \url{http://www.kernel.org/pub/software/scm/git/docs/user-manual.html} + \item "`Git Community Book"': \url{http://book.git-scm.com/} + \item Buch "`Pro Git"': \url{http://progit.org/book/} \end{itemize} \end{frameframe} @@ -420,8 +457,9 @@ \item $\rightarrow$ Benutzerinformationen für Commit-Metadaten \end{itemize} \end{block} +\end{frameframe} - \uncover<2>{ +\begin{frameframe}{Git konfigurieren} \begin{block}{Bunt und in Farbe} \begin{itemize} \item \texttt{git config --global color.ui auto} @@ -429,7 +467,17 @@ \texttt{status} Ausgaben \end{itemize} \end{block} + + \uncover<2>{ + \begin{block}{Weitere nützliche Optionen} + \begin{itemize} + \item {\ttfamily git config --global merge.tool vimdiff} + \item {\ttfamily git config --global push.default = current} + \item {\ttfamily git config --global alias.wdiff 'diff --color-words'} + \item … + \end{itemize} } + \end{block} \end{frameframe} \begin{frameframe}{Repositories erstellen} @@ -541,7 +589,7 @@ would print garbage (if you are lucky) or crash. This fixes it. {\ttfamily \footnotesize \$ git show\newline - \$ git show HEAD:foo + \$ git show HEAD:foo\hfill (siehe {\ttfamily gitrevisions(7)}) } \begin{itemize} @@ -574,7 +622,7 @@ would print garbage (if you are lucky) or crash. This fixes it. \item Branch: "`automatischer"' Zeiger auf eine Reihe von Commits \item \texttt{HEAD}: Zeiger auf den aktuellen Branch \item \texttt{master}: "`Standard"'-Branch - \item Merge: Zusammenführen von zwei Entwicklungssträngen + \item Merge: Zusammenführen von zwei (oder mehr) Entwicklungssträngen \end{itemize} \begin{block}{Branch erzeugen} @@ -587,7 +635,7 @@ would print garbage (if you are lucky) or crash. This fixes it. \uncover<2>{ \$ git branch\newline \hspace*{1em}master\newline - * new-branch + * $<$Name$>$ } \end{block} \end{frameframe} @@ -597,18 +645,18 @@ would print garbage (if you are lucky) or crash. This fixes it. \ttfamily \footnotesize \$ git merge master\newline - \$ git rebase master + \$ git rebase master \# nur in privaten Branches! \end{block} \uncover<2>{ \begin{block}{Konflikte auflösen} \begin{itemize} \item Konflikte entstehen, wenn die gleiche Stelle unterschiedlich - geändert wurde\newline - $\Rightarrow$ manuelles Eingreifen nötig + geändert wurde $\Rightarrow$ manuelles Eingreifen nötig \item Commit-Erzeugung wird unterbrochen \item Konfliktanzeiger in den betroffenen Dateien \item manuelle Entscheidung, wie beide Änderungen zusammengeführt werden + \item {\ttfamily git mergetool} \end{itemize} \end{block} } @@ -652,6 +700,7 @@ would print garbage (if you are lucky) or crash. This fixes it. \footnotesize \$ git remote add $<$Name$>$ URL\newline \$ git remote update $<$Name$>$ + \$ git push $<$Name$>$ \# ggf. zusätzlich Branch angeben \end{block} \end{frameframe} @@ -664,12 +713,72 @@ would print garbage (if you are lucky) or crash. This fixes it. \end{itemize} \end{frameframe} +\begin{frameframe}{Ein Beispiel …} + \begin{center} + \begin{tikzpicture}[x=1mm,y=1mm] + \node at (0,0) [circle,draw=red,fill=red!50,thick] (r) {}; + \node at (5,0) [anchor=west] {Upstream Repo}; + + \uncover<3->{ + \node at (-20,-30) [circle,draw=green,fill=green!50,thick] (i) {}; + \node at (-25,-30) [anchor=east] {interner Klon}; + } + \uncover<2->{ + \draw [->] (r.south west) -- (i.north east); + \node at (-12,-15) [anchor=east] {\ttfamily clone}; + } + + \uncover<5->{ + \node at (-25,-45) [circle,draw=black,fill=black!50,thick] (c1) {}; + \node at (-20,-45) {…}; + \node at (-15,-45) [circle,draw=black,fill=black!50,thick] (cn) {}; + \node at (-20,-50) {interne "`Clients"'}; + } + \uncover<4->{ + \draw [->] (i.south) -- (c1.north); + \node at (-20,-40) {\tiny …}; + \draw [->] (i.south) -- (cn.north); + } + + \uncover<7->{ + \node at (20,-30) [circle,draw=yellow,fill=yellow!50,thick] (qa) {}; + \node at (25,-30) [anchor=west] {QA Repo}; + } + \uncover<6->{ + \draw [->] (i.east) -- (qa.west); + \node at (0,-32) [anchor=north] {\ttfamily clone}; + } + + \uncover<8->{ + \draw [<->,dashed] (r.south east) -- (qa.north west); + \node at (12,-15) [anchor=west] {\ttfamily remote add up …}; + } + + \uncover<9>{ + \node at (-5,-20) + [anchor=north west,draw=black,fill=white,thick,rounded corners,% + inner sep=3mm] + {\begin{minipage}{55mm} + \ttfamily + \$ git fetch up\\ + \$ git checkout master\\ + \$ git merge up/master\\ + \$ git mergetool\\ + \$ git push \# origin master + \end{minipage} + }; + } + \end{tikzpicture} + \end{center} +\end{frameframe} + \begin{frameframe}{Frontends} \begin{itemize} \item \texttt{tig} (ncurses) \item \texttt{gitk} (Tk, read-only) \item \texttt{qgit} (Qt) \item \texttt{magit} (emacs) + \item \texttt{egit} (Eclipse) \end{itemize} \end{frameframe}