changeset 149:90fc2363399a

Split off slides on SVN branching/merging.
author Martin Geisler <mg@aragost.com>
date Mon, 26 Apr 2010 17:12:56 +0200
parents a87067630dca
children 9344b5fe3996
files mercurial.tex svn-branching.tex svn-merging.tex
diffstat 3 files changed, 77 insertions(+), 74 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial.tex
+++ b/mercurial.tex
@@ -284,80 +284,8 @@
 \include{workflow-divisions}
 \include{workflow-yourself}
 
-\begin{frame}{Branches in SVN}
-  Subversion knows nothing about branches!
-  \begin{itemize}
-  \item but SVN has a cheap copy mechanism
-  \item used for tags and branches
-  \end{itemize}
-
-  \begin{tikzpicture}
-    \node<2->[working copy, below, text width=20mm, label=above:r10]
-             (a) at (0, 0) {
-      trunk/\\
-      \quad hello.c\\
-      \quad Makefile\\
-      branches/\\
-      tags/
-    };
-    \node<3->[working copy, below, text width=25mm, label=above:r11]
-             (b) at (3.5, 0) {
-      trunk/\\
-      \quad hello.c\\
-      \quad Makefile\\
-      branches/\\
-      \quad \alert<3>{goodbye/}\\
-      \qquad \alert<3>{hello.c}\\
-      \qquad \alert<3>{Makefile}\\
-      tags/
-    };
-    \node<4->[working copy, below, text width=30mm, label=above:r12]
-             (c) at (7.5, 0) {
-      trunk/\\
-      \quad hello.c\\
-      \quad Makefile\\
-      branches/\\
-      \quad goodbye/\\
-      \qquad hello.c\\
-      \qquad \alert<4>{goodbye.c}\\
-      \qquad Makefile\\
-      tags/
-    };
-
-    \tikzstyle{s}=[yshift=-5mm]
-    \tikzstyle{every pin edge}=[draw, red, <-]
-
-    \draw<3->[->, short] ([s] a.north east) -- ([s] b.north west);
-    \draw<4->[->, short] ([s] b.north east) -- ([s] c.north west);
-  \end{tikzpicture}
-\end{frame}
-
-\begin{frame}{Merging Branches in SVN}
-  The support is incomplete and fragile:
-  \begin{itemize}
-  \item renamed files are not merged correctly
-  \item old clients will not update the merge info
-  \end{itemize}
-
-  \pause
-
-  \begin{center}
-  \begin{tikzpicture}
-    \node[draw=structure, fill=structure!20!white, text justified,
-      text width=0.9\textwidth, font=\small] {The bottom line is that
-      Subversion's merge-tracking feature has an \alert{extremely
-        complex} internal implementation, and the
-      \texttt{svn:mergeinfo} property is the only window the user has
-      into the machinery. Because the feature is \alert{relatively
-        new}, a numbers of edge cases and possible unexpected
-      behaviors may pop up. \hfill\itshape ---Version Control with
-      Subversion};
-  \end{tikzpicture}
-
-  (Mercurial has robust built-in support for merging branches.)
-  \end{center}
-
-\end{frame}
+\include{svn-branching}
+\include{svn-merging}
 
 
 \section{Using Mercurial}
new file mode 100644
--- /dev/null
+++ b/svn-branching.tex
@@ -0,0 +1,48 @@
+
+\begin{frame}{Branches in SVN}
+  Subversion knows nothing about branches!
+  \begin{itemize}
+  \item but SVN has a cheap copy mechanism
+  \item used for tags and branches
+  \end{itemize}
+
+  \begin{tikzpicture}
+    \node<2->[working copy, below, text width=20mm, label=above:r10]
+             (a) at (0, 0) {
+      trunk/\\
+      \quad hello.c\\
+      \quad Makefile\\
+      branches/\\
+      tags/
+    };
+    \node<3->[working copy, below, text width=25mm, label=above:r11]
+             (b) at (3.5, 0) {
+      trunk/\\
+      \quad hello.c\\
+      \quad Makefile\\
+      branches/\\
+      \quad \alert<3>{goodbye/}\\
+      \qquad \alert<3>{hello.c}\\
+      \qquad \alert<3>{Makefile}\\
+      tags/
+    };
+    \node<4->[working copy, below, text width=30mm, label=above:r12]
+             (c) at (7.5, 0) {
+      trunk/\\
+      \quad hello.c\\
+      \quad Makefile\\
+      branches/\\
+      \quad goodbye/\\
+      \qquad hello.c\\
+      \qquad \alert<4>{goodbye.c}\\
+      \qquad Makefile\\
+      tags/
+    };
+
+    \tikzstyle{s}=[yshift=-5mm]
+    \tikzstyle{every pin edge}=[draw, red, <-]
+
+    \draw<3->[->, short] ([s] a.north east) -- ([s] b.north west);
+    \draw<4->[->, short] ([s] b.north east) -- ([s] c.north west);
+  \end{tikzpicture}
+\end{frame}
new file mode 100644
--- /dev/null
+++ b/svn-merging.tex
@@ -0,0 +1,27 @@
+
+
+\begin{frame}{Merging Branches in SVN}
+  The support is incomplete and fragile:
+  \begin{itemize}
+  \item renamed files are not merged correctly
+  \item old clients will not update the merge info
+  \end{itemize}
+
+  \pause
+
+  \begin{center}
+  \begin{tikzpicture}
+    \node[draw=structure, fill=structure!20!white, text justified,
+      text width=0.9\textwidth, font=\small] {The bottom line is that
+      Subversion's merge-tracking feature has an \alert{extremely
+        complex} internal implementation, and the
+      \texttt{svn:mergeinfo} property is the only window the user has
+      into the machinery. Because the feature is \alert{relatively
+        new}, a numbers of edge cases and possible unexpected
+      behaviors may pop up. \hfill\itshape ---Version Control with
+      Subversion};
+  \end{tikzpicture}
+
+  (Mercurial has robust built-in support for merging branches.)
+  \end{center}
+\end{frame}