2.1 Hacks #23-36
If you take administration seriously,
you will likely spend untold hours fine-tuning your system to behave
just so. Unfortunately, it
isn't always possible to define when a given
application is "working" and when
it is "broken"; usually
functionality is much more finely graded, somewhere in the grey area
between up and down. Even making a small configuration change can
bring about subtle effects that aren't seen for days
(or weeks) down the road.
This is where Revision Control can be a powerful ally. Beyond
providing simple backups, any revision control package worth its
weight in bits will keep track of the changes in any file, when it
was changed, who changed it, and why the change was made. This
information can be of untold value when working on a complex system,
particularly if more than one person is responsible for its upkeep.
By keeping critical configuration files in systems such as RCS or
CVS, you will be able to "roll
back" to any previous revision of a file, and
analyze the differences between what was present then and the version
you have online right now.
In this section, the goal is to provide the specific syntax you need
to make effective use of RCS and CVS, with useful examples of how you
might use them. While RCS is extremely handy for maintaining file
revisions on a single machine, CVS offers extensive archiving and
merging capabilities, keeping a central repository somewhere on the
network. Understandably, CVS is a much more complicated tool than
RCS. Hacks 23 through 25 offer a crash course in RCS, while 26
through 36 will get you up to speed quickly on CVS, from simple
commands to setting up your own anonymous CVS repository.
Naturally, this chapter assumes that you're already
comfortable working with files from the command line, even if you
haven't worked with RCS or CVS before. If
you're looking for in-depth information about CVS,
take a look at the excellent book Open Source Development
with CVS by Karl Fogel (CoriolisOpen Press).
|