hgbook

diff en/intro.tex @ 217:369858a4d63c

Start to flesh out chapter 1.
author Bryan O'Sullivan <bos@serpentine.com>
date Thu May 10 13:24:25 2007 -0700 (2007-05-10)
parents 914babdc99c8
children 75fd236d736b
line diff
     1.1 --- a/en/intro.tex	Mon Mar 12 23:10:32 2007 -0700
     1.2 +++ b/en/intro.tex	Thu May 10 13:24:25 2007 -0700
     1.3 @@ -1,9 +1,63 @@
     1.4  \chapter{Introduction}
     1.5  \label{chap:intro}
     1.6  
     1.7 -\section{What is revision control?}
     1.8 +\section{About revision control}
     1.9  
    1.10 -\section{Why use revision control?}
    1.11 +Revision control is the management of multiple versions of a piece of
    1.12 +information.  In its simplest form, it's a process that many people
    1.13 +perform by hand: every time you modify a file, save it under a new
    1.14 +name that contains a number, each one higher than the number of the
    1.15 +preceding version.
    1.16 +
    1.17 +Manually managing multiple versions of even a single file is an
    1.18 +error-prone task, though, so software tools to help automate this
    1.19 +process have long been available.  The earliest automated revision
    1.20 +control tools were intended to help a single user to manage revisions
    1.21 +to a single file.  Over the past several decades, the scope of
    1.22 +revision control tools has expanded greatly; they now manage multiple
    1.23 +files, and help multiple people to work together.  The best modern
    1.24 +revision control tools will have no problem coping with thousands of
    1.25 +people working together on a single project, which might consist of
    1.26 +hundreds of thousands of files.
    1.27 +
    1.28 +\subsection{Why use revision control?}
    1.29 +
    1.30 +There are a number of reasons why you or your team might want to use
    1.31 +an automated revision control tool for a project.
    1.32 +\begin{itemize}
    1.33 +\item The software gives you a unified way of working with your
    1.34 +  project's files, and a single place to look in.
    1.35 +\item When you're working with other people, it will make it easier
    1.36 +  for you to collaborate.  When people more or less simultaneously
    1.37 +  make potentially incompatible changes, the software will help you to
    1.38 +  identify and resolve those conflicts.
    1.39 +\item It will track the history of your project.  For every change,
    1.40 +  you'll have a log of \emph{who} made it; \emph{why} they made it;
    1.41 +  \emph{when} they made it; and \emph{what} the change was.
    1.42 +\item It can help you to recover from mistakes.  If you make a change
    1.43 +  that later turns out to be in error, you can revert to an earlier
    1.44 +  version of one or more files.  In fact, a \emph{really} good
    1.45 +  revision control tool will even help you to efficiently figure out
    1.46 +  exactly when a problem was introduced (see
    1.47 +  section~\ref{sec:undo:bisect} for details).
    1.48 +\item It will help you to work simultaneously on multiple versions of
    1.49 +  your project.
    1.50 +\end{itemize}
    1.51 +
    1.52 +\subsection{The many names of revision control}
    1.53 +
    1.54 +Revision control is a diverse field, so much so that it doesn't
    1.55 +actually have a single name or acronym.  Here are a few of the more
    1.56 +common names and acronyms you'll encounter:
    1.57 +\begin{itemize}
    1.58 +\item Configuration management (CM)
    1.59 +\item Revision control (RCS)
    1.60 +\item Software configuration management (SCM)
    1.61 +\item Version control (VCS)
    1.62 +\end{itemize}
    1.63 +Some people claim that these terms actually have different meanings,
    1.64 +but in practice they overlap so much that there's no agreed or even
    1.65 +useful way to tease them apart.
    1.66  
    1.67  \section{The hierarchy of revision control}
    1.68