changeset 187:b60e2de6dbc3

Add chapter on branch management.
author Bryan O'Sullivan <bos@serpentine.com>
date Mon, 16 Apr 2007 14:19:31 -0700
parents 7b812c428074
children 3c6c5b551c96
files en/00book.tex en/Makefile en/branch.tex en/collab.tex
diffstat 4 files changed, 40 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/en/00book.tex	Thu Apr 05 23:28:06 2007 -0700
+++ b/en/00book.tex	Mon Apr 16 14:19:31 2007 -0700
@@ -44,6 +44,7 @@
 \include{daily}
 \include{collab}
 \include{filenames}
+\include{branch}
 \include{undo}
 \include{hook}
 \include{template}
--- a/en/Makefile	Thu Apr 05 23:28:06 2007 -0700
+++ b/en/Makefile	Mon Apr 16 14:19:31 2007 -0700
@@ -5,6 +5,7 @@
 	99book.bib \
 	99defs.tex \
 	build_id.tex \
+	branch.tex \
 	cmdref.tex \
 	collab.tex \
 	concepts.tex \
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/en/branch.tex	Mon Apr 16 14:19:31 2007 -0700
@@ -0,0 +1,9 @@
+\chapter{Managing branchy development}
+\label{chap:branch}
+
+
+
+%%% Local Variables: 
+%%% mode: latex
+%%% TeX-master: "00book"
+%%% End: 
--- a/en/collab.tex	Thu Apr 05 23:28:06 2007 -0700
+++ b/en/collab.tex	Mon Apr 16 14:19:31 2007 -0700
@@ -257,6 +257,35 @@
 of development is astounding.  And yet Linux is a highly successful,
 well-regarded piece of software.
 
+\subsection{Pull-only versus shared-push collaboration}
+
+A perpetual source of heat in the open source community is whether a
+development model in which people only ever pull changes from others
+is ``better than'' one in which multiple people can push changes to a
+shared repository.
+
+Typically, the backers of the shared-push model use tools that
+actively enforce this approach.  If you're using a centralised
+revision control tool such as Subversion, there's no way to make a
+choice over which model you'll use: the tool gives you shared-push,
+and if you want to do anything else, you'll have to roll your own
+approach on top (such as applying a patch by hand).
+
+A good distributed revision control tool, such as Mercurial, will
+support both models.  You and your collaborators can then structure
+how you work together based on your own needs and preferences, not on
+what contortions your tools force you into.
+
+\subsection{Where collaboration meets branch management}
+
+Once you and your team set up some shared repositories and start
+propagating changes back and forth between local and shared repos, you
+begin to face a related, but slightly different challenge: that of
+managing the multiple directions in which your team may be moving at
+once.  Even though this subject is intimately related to how your team
+collaborates, it's dense enough to merit treatment of its own, in
+chapter~\ref{chap:branch}.
+
 \section{The technical side of sharing}
 
 \subsection{Informal sharing with \hgcmd{serve}}