# RootPrompt.org   Nothing but Unix.[Home] [Features] [Programming] [Mac OS X] [Search]

 Book Review: Essential CVS

CVS (Concurrent Versions System) is a popular open source version control system used to manage changes to files including: source code, web content, documentation, and configuration files.

RootPrompt.org presents a review of Essential CVS, a well written tutorial and reference to using and administering CVS.

 (Submitted by Noel Wed Jul 27, 2005 )


Essential CVS

By: Jennifer Vesperman

Review Copyright 2005 Noel Davis

CVS (Concurrent Versions System) is a popular open source version control system. A version control system is used to manage changes to files. Many different types of files are managed with CVS including: source code, web content, documentation, and configuration files. It can be especially useful when multiple users are changing files. It has many advanced features such as: facilities for merging multiple users changes, marking a set of files with so that they can be retrieved together, backing out changes to a file, and many more.

I have used CVS for more than five years to manage a personal repository of PHP scripts and other files. In most cases CVS has been easy to use, but I tend to do very simple tasks on a day to day basis. Most of the time the only CVS commands I use are 'cvs com' and 'cvs upd'. As a result of this when I need to use the many of the other features of CVS I need to look up the command syntax to avoid any mistakes. When I looked around at the available CVS books I was looking for a reference book that also would explain areas of CVS that I had not been taking advantage of. Essential CVS was a perfect fit for my problem.

The goal of Essential CVS is to be an easy to follow reference and tutorial to CVS and it succeeds admirably. The book is written in a clear and concise style that is understandable and complete without covering so much detail that it is hard to digest.

The author of Essential CVS Jennifer Vesperman is a programmer and system administrator and has written the Linux Documentation Project, Linux.com, and the O'Reilly Network.

The book uses Unix shell commands for the CVS command examples. But there is an appendix in the back that details available graphical interfaces to CVS including: gCVS, WinCVS, MacCVS, jCVS, SmartCVS, and others.

I liked the coverage of Tagging in the chapter on Tagging and Branching. It was an area that I had only an elementary understanding of and the book did a very good job of explaining it.

Through out the book small notes are added that either point out a special hint to help the reader or point out an easy to fall into trap. These are marked respectively by a small box with animal tracks across it or by a box with a animal trap inside it.

If your wondering what the animal on the cover is it's a Bobac. Bobacs are a type of Marmot that lives in Russia, Kazakhstan, and central Europe. Other examples of Marmots are Woodchucks and Prairie Dogs.

Essential CVS is a good addition to a Unix Admin's book shelf. It succeeds as both a tutorial to CVS and as a reference to CVS commands and options. Anyone who needs to use CVS, or who must administer a CVS repository for others will find this book useful.

Table of Contents


Part I. Introduction

1. What Is CVS?

      What Is a Versioning System? 

      CVS in the Field 

2. CVS Quickstart Guide

      Installing CVS 

      Building Your First Repository 

      Importing Projects 

      Accessing Remote Repositories 

      Checking Out Files 

      Committing Changes 

      Updating Sandboxes 

      Adding Files 

      Removing Files 

      Quick Tips for Success 

Part II. Using CVS

3. Basic Use of CVS

      General Information 

      Sandboxes and Repositories 

      Committing Changes to the Repository 

      Checking File Status 

      Updating the Sandbox Files from the Repository 

      Adding Files to the Repository 

      Removing Files from the Repository 

      Moving Files or Directories 

      Releasing a Sandbox 


      Binary Files and Wrappers 

      Specifying Default Command Options 

4. Tagging and Branching




      Branching Strategies 

5. Multiple Users

      Using Simultaneous Development 

      Watching a File 

      Reserving Files 

      Comparing File Revisions 

      Displaying Recent Changes 

      Displaying File History 

Part III. CVS Administration

6. Repository Management

      Creating a Repository 

      Deleting a Repository 

      Securing Your Projects 

      Repository Structure 

      CVSROOT Files 

      Server Environment Variables 

      Backing Up a Repository 

      Editing a Repository 

      Sandbox Structure 

      Client Environment Variables 

      Exit Status 

7. Project Management

      Creating a Project 

      Distributing Files 

      Running Scripts 

      Interfacing with External Programs 


      Strategies and Practices 

8. Remote Repositories

      Specifying Repository Paths 

      The local Access Method 

      The ext and server Access Methods 

      The fork Access Method 

      The gserver Access Method 

      The kserver Access Method 

      The pserver Access Method 

      Using inetd with gserver, kserver, and pserver 

9. Troubleshooting

      General Troubleshooting Techniques 

      Connectivity Problems 

      Filename Problems 

      Line-Ending Problems 

      Permission Problems 

      Lock Files 

Part IV. Reference

10. Command Reference

      CVS Command-Line Options 

      CVS Commands 

11. Miscellaneous Topics Reference

      Administrative Files 

      CVSROOT Files 

      CVSROOT Variables 


      Environment Variables 

      Keywords and Keyword Modes 

      Pattern Matching 

      Repository Access Methods 

Part V. Appendixes

A. Clients and Operating Systems

B. Administrator's Tools


Buy from Barnes & Noble:

Essential CVS
Essential CVS

Our content can be syndicated: Main page Mac Page

Copyright 1999-2005 Noel Davis. Noel also runs web sites about sailing and kayaking.
All trademarks are the property of their owners.
All articles are owned by their author