Mercurial > hg > mercurial-talk
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}