# HG changeset patch # User Bryan O'Sullivan # Date 1178828665 25200 # Node ID 369858a4d63cd01ded5bd536c6534620340e47f8 # Parent 699771d085c6ab0c627db9d55ed396c2b11b8917 Start to flesh out chapter 1. diff -r 699771d085c6 -r 369858a4d63c en/intro.tex --- 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}