\begin{frame}
\titlepage
\end{frame}
+
+\begin{frame}
+ \tableofcontents
+\end{frame}
%}}}
\section{Why choosing \git}%{{{
\begin{frame}{It's a DSCM [2/2]}
With \git, as a DSCM, most of the issues are gone.
\begin{itemize}
- \item<2-> Offline work is possible, in fact you always work offline;
+ \item<2-> Off-line work is possible, in fact you always work off-line;
\item<3-> Incremental work is possible;
\item<4-> \git{} allow you to completely erase a wrong idea if you didn't
shared it yet;
\uncover<6->{
In other words, \git{} is a suitable replacement for both SVN and
- quilt\footnote{or your prefered patch system}.
+ quilt\footnote{or your preferred patch system}.
}
\end{frame}
{\bf Demo}: tokyocabinet packaging:
\begin{itemize}
\item Step 1: importing upstream;
- \item Step 2: backuping the orig.tar.gz.
+ \item Step 2: backing up the orig.tar.gz.
\end{itemize}
\end{frame}
\begin{frame}{The repository layout: patches}
Second of all, instead of using quilt, I use a private git branch to hold my
- patch queue (usually called {\tt \$origbranch+patches}). There are many
+ patch queue (usually called {\tt \$\{upstream\_branch\}+patches}). There are many
reasons to that:
\begin{itemize}
\item<2-> I only use one tool: \git{};
- \item<3-> quilt doesnt know about diff3, hence isn't very practical for
- partially merged patches;
- \item
- \item
+ \item<3-> quilt doesn't know about diff3, unpractical for partially merged
+ patches;
+ \item<4-> I believe it to be nicer to browse or to cherry-pick for
+ upstreams.
+ \end{itemize}
+ \vspace{1ex}
+ \uncover<5->{
+ {\bf Demo:} let's rebase our patch branch for tokyocabinet !
+ }
+\end{frame}
+
+\begin{frame}{The repository layout: debian packaging}
+ Finally, everything that is Debian specific is kept into a debian branch.
+ \begin{itemize}
+ \item<2-> One branch per suite: {\tt debian-etch}, {\tt debian-sid}, {\tt
+ debian-exp};
+ \item<3-> the corresponding upstreams are merged into this {\tt debian}
+ branch;
+ \item<4-> the {\tt upstream+patches} branch is serialized under
+ {\tt debian/patches}.
\end{itemize}
+ \vspace{1ex}
+ \uncover<5->{
+ {\bf Demo:} let's release our tokyocabinet package !
+ }
+\end{frame}
+%}}}
+\section{How to turn mud into gold efficiently}%{{{
+\begin{frame}{Hiding to the world you're a dirty pig}
+ There is nothing more useless than a crappy SCM history. I don't know how
+ {\it you} work, but I tend to do everything at the same time.
+
+ \vspace{1em}
+ \uncover<2->{
+ Well, then just bind {\tt :wa} to {\tt :wa<cr>:!git commit -a} in your
+ editor…
+ }
+
+ \vspace{1em}
+ \uncover<3->{
+ Then work like a pig, compulsively saving\^{}Wcommiting your stuff…
+ }
+
+ \vspace{1em}
+ \uncover<4->{
+ And when you're happy of the current sate, let's fake that you're a good
+ boy.
+ }
+
+ \vspace{1em}
+ \uncover<5->{
+ {\bf Demo}: the same in pictures.
+ }
+\end{frame}
+\begin{frame}{Using \git{} for other's packages}
+ \git{} is not only useful as a versioning tool, it also helps to work fast
+ with NMUs and security uploads.
+ \begin{enumerate}
+ \item<2-> {\tt \$ git init \&\& git add .\@{} \&\& git commit -asm.}
+ \item<3-> {\it hack, hack …} {\tt \$ git commit -asm'try this'}
+ \item<4-> {\it hack, hack …} {\tt \$ git commit -asm'try that'}
+ \item<5-> {\it rebuild… Ok it works, let's produce a clean patch:}\\
+ {\tt \$ git rebase -i [...]}
+ \end{enumerate}
+
+ \vspace{1ex}
+ \uncover<6->{
+ Some packages don't rebuild twice in a row properly, because their
+ {\tt clean} target is broken…
+ }
+
+ \uncover<7->{
+ \alert{I laugh at those}:\\
+ {\tt \$ git clean -d \&\& git reset --hard}
+ }
+\end{frame}
+%}}}
+\section{The END !}%{{{
+
+\begin{frame}{The END !}
+ If you're not too bored already, I'll gladly answer your questions now.
+
+ \vspace{2em}
+
+ And remember, git has a tremendous community.
+
+ \begin{center}
+ {\tt <mailto:git@vger.kernel.org>}
+ \end{center}
+
+ Also consult the documentation:
+ {\tt /usr/share/doc/git-doc/index.html}\footnote{I assume you have git-doc
+ installed, it will soon be part of base}.
\end{frame}
%}}}
\end{document}
-% vim:tw=78:
+% vim:tw=78 spell spelllang=en: