changeset 217:369858a4d63c

Start to flesh out chapter 1.
author Bryan O'Sullivan <bos@serpentine.com>
date Thu, 10 May 2007 13:24:25 -0700
parents 699771d085c6
children 75fd236d736b
files en/intro.tex
diffstat 1 files changed, 56 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/en/intro.tex	Thu May 10 11:51:08 2007 -0700
+++ b/en/intro.tex	Thu May 10 13:24:25 2007 -0700
@@ -1,9 +1,63 @@
 \chapter{Introduction}
 \label{chap:intro}
 
-\section{What is revision control?}
+\section{About revision control}
+
+Revision control is the management of multiple versions of a piece of
+information.  In its simplest form, it's a process that many people
+perform by hand: every time you modify a file, save it under a new
+name that contains a number, each one higher than the number of the
+preceding version.
+
+Manually managing multiple versions of even a single file is an
+error-prone task, though, so software tools to help automate this
+process have long been available.  The earliest automated revision
+control tools were intended to help a single user to manage revisions
+to a single file.  Over the past several decades, the scope of
+revision control tools has expanded greatly; they now manage multiple
+files, and help multiple people to work together.  The best modern
+revision control tools will have no problem coping with thousands of
+people working together on a single project, which might consist of
+hundreds of thousands of files.
+
+\subsection{Why use revision control?}
 
-\section{Why use revision control?}
+There are a number of reasons why you or your team might want to use
+an automated revision control tool for a project.
+\begin{itemize}
+\item The software gives you a unified way of working with your
+  project's files, and a single place to look in.
+\item When you're working with other people, it will make it easier
+  for you to collaborate.  When people more or less simultaneously
+  make potentially incompatible changes, the software will help you to
+  identify and resolve those conflicts.
+\item It will track the history of your project.  For every change,
+  you'll have a log of \emph{who} made it; \emph{why} they made it;
+  \emph{when} they made it; and \emph{what} the change was.
+\item It can help you to recover from mistakes.  If you make a change
+  that later turns out to be in error, you can revert to an earlier
+  version of one or more files.  In fact, a \emph{really} good
+  revision control tool will even help you to efficiently figure out
+  exactly when a problem was introduced (see
+  section~\ref{sec:undo:bisect} for details).
+\item It will help you to work simultaneously on multiple versions of
+  your project.
+\end{itemize}
+
+\subsection{The many names of revision control}
+
+Revision control is a diverse field, so much so that it doesn't
+actually have a single name or acronym.  Here are a few of the more
+common names and acronyms you'll encounter:
+\begin{itemize}
+\item Configuration management (CM)
+\item Revision control (RCS)
+\item Software configuration management (SCM)
+\item Version control (VCS)
+\end{itemize}
+Some people claim that these terms actually have different meanings,
+but in practice they overlap so much that there's no agreed or even
+useful way to tease them apart.
 
 \section{The hierarchy of revision control}