hgbook

diff en/collab.tex @ 187:b60e2de6dbc3

Add chapter on branch management.
author Bryan O'Sullivan <bos@serpentine.com>
date Mon Apr 16 14:19:31 2007 -0700 (2007-04-16)
parents 7b812c428074
children 8b599dcca584
line diff
     1.1 --- a/en/collab.tex	Thu Apr 05 23:28:06 2007 -0700
     1.2 +++ b/en/collab.tex	Mon Apr 16 14:19:31 2007 -0700
     1.3 @@ -257,6 +257,35 @@
     1.4  of development is astounding.  And yet Linux is a highly successful,
     1.5  well-regarded piece of software.
     1.6  
     1.7 +\subsection{Pull-only versus shared-push collaboration}
     1.8 +
     1.9 +A perpetual source of heat in the open source community is whether a
    1.10 +development model in which people only ever pull changes from others
    1.11 +is ``better than'' one in which multiple people can push changes to a
    1.12 +shared repository.
    1.13 +
    1.14 +Typically, the backers of the shared-push model use tools that
    1.15 +actively enforce this approach.  If you're using a centralised
    1.16 +revision control tool such as Subversion, there's no way to make a
    1.17 +choice over which model you'll use: the tool gives you shared-push,
    1.18 +and if you want to do anything else, you'll have to roll your own
    1.19 +approach on top (such as applying a patch by hand).
    1.20 +
    1.21 +A good distributed revision control tool, such as Mercurial, will
    1.22 +support both models.  You and your collaborators can then structure
    1.23 +how you work together based on your own needs and preferences, not on
    1.24 +what contortions your tools force you into.
    1.25 +
    1.26 +\subsection{Where collaboration meets branch management}
    1.27 +
    1.28 +Once you and your team set up some shared repositories and start
    1.29 +propagating changes back and forth between local and shared repos, you
    1.30 +begin to face a related, but slightly different challenge: that of
    1.31 +managing the multiple directions in which your team may be moving at
    1.32 +once.  Even though this subject is intimately related to how your team
    1.33 +collaborates, it's dense enough to merit treatment of its own, in
    1.34 +chapter~\ref{chap:branch}.
    1.35 +
    1.36  \section{The technical side of sharing}
    1.37  
    1.38  \subsection{Informal sharing with \hgcmd{serve}}