hgbook
changeset 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 | 699771d085c6 |
children | 75fd236d736b |
files | en/intro.tex |
line diff
1.1 --- a/en/intro.tex Thu May 10 11:51:08 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