Slashdot Mirror


Open Source Development with CVS

Managing software development is a job right up there with aircraft controller in the realm between fascinating and nerve-wracking. chromatic's latest review is of a book introducing one of the best known tools for managing the complexity inherent in such projects, Karl Fogel's Open Source Development with CVS.

Open Source Development with CVS author Karl Fogel pages 316 publisher Coriolis Open Press rating 8.5 reviewer chromatic ISBN 1-57610-490-7 summary More than a summary of CVS commands, Open Source Development with CVS is a study of how to organize and lead free software projects.

The Scoop Free software, the theory goes, is in a constant state of release. Instead of working in secret for years to produce a Grand Unified Model of Everything, then unleashing it on an unsuspecting world to the accompaniment of television commercials and full-page ads in trade magazines, development occurs in public view. That's aided, in no small part, by the convenience of CVS. So argues Karl Fogel in his introduction to Open Source Development with CVS. In that case, why not try it yourself?

Interspersed between CVS How-To chapters are Developer How-To chapters. For example, chapter 3 describes the author's theories on the entire Open Source process. That includes such common-sense advice as "Release something useful" and "Release something usable." There're plenty of examples to back up these ideas, drawn from the examples of large and popular open source projects.

What's to Like? CVS-specific chapters build on each other. Though 95% of the commands the average developer will ever use are covered in chapter two, the increasingly specific information just may come in handy someday. Though there's a price to pay for flexibility, the increased power it brings is worth it. If you've followed the examples and done some testing of your own, you'll have earned the title 'CVS Guru' by the end of chapter six.

Fogel's development essays take the pragmatic approach. Rather than preaching the One True Way to Do It, he analyzes several successful projects (Apache, the Linux kernel, and CVS itself being among the most prominent) and attempts to draw general principles from their histories. His overall philosophy seems to be "manage a few things well and strictly, and let your project evolve." With a good framework in place (both in your code and for your project administration), things will work smoothly and you'll be more likely to reap the benefits of the free software model.

Chapter eight gives troubleshooting tips. Fogel walks through the most common errors he's seen, doling out explanations and solutions with abandon. Chapter nine is a good reference, neatly summarizing CVS commands and files. Having completed the rest of the book -- and understanding the concepts, this section has the exact syntax at your fingertips.

What's to Consider? Though a complete reference on its own, occasionally the author defers discussion of some subjects in favor of referring to the Cederqvist manual accompanying a CVS source distribution. To be fair, these are often highly technical minutiae, but at 316 pages there is space for an expanded explanation of topics such as the RCS roots of CVS (knowing the source of CVS can help one to understand why some things are the way they are). Thankfully, there's information provided about the official FAQ and mailing lists where such data can be found. The Summary Beyond a comprehensive guide to using and administering CVS, Karl Fogel has written an easy-to-read guide on successful Open Source development. His practical focus and laid-back approach should prove workable for everything from pet projects to large undertakings. The author and Coriolis, the publisher, have also made chapters 2, 4, 6, 8, 9, and 10 available online at http://cvsbook.red-bean.com, under the GPL. Table of Contents

Purchase this book at ThinkGeek.

  1. Why Open Source Development and CVS Go Together
  2. An Overview of CVS
  3. The Open Source Process
  4. CVS Repository Administration
  5. Designing for Decentralized Development
  6. Advanced CVS
  7. Building, Testing, and Releasing
  8. Tips and Troubleshooting
  9. Complete CVS Reference
  10. Third-Party Tools That Work With CVS
  1. CVS Maintenance and Development Today
  2. GNU General Public License

4 of 127 comments (clear)

  1. Execellent Book by Darkseer · · Score: 4
    I work for a consulting company who just implemented CVS for a client. The were using VSS and had to be shown the light. They were actually loosing productivity do to currupt version databases and VSS's oh so discriptive data files. This book helped me and others easily learn the intracacies of CVS and implement CVS in a sane manner for both remote and local development. I highly recommed it to anyone doing Config Management work!! The watches section was especially useful for what we were doing.

    --

    BOFH, My model for being a sysadmin :)

  2. Why certain chapters were open sourced by webmaven · · Score: 4

    I own this book, and I found it interesting that the chapters that were made available on the net were the chapters concerning technical matters, whereas the chapters I found most interesting, concerning the social aspects of CVS and Open Source projects are only available in the printed version.

    This makes a lot of sense, from the authors perspective (and from ours as users of open source), since technical documentation is what's most desparately needed for many projects.

    But I wonder how difficult it was to convince the publisher of this, who must have wanted to flip the situation around, and only offer the 'soft' information for free.
    --

    --
    The real Webmaven is user ID 27463. I don't rate an imposter, because my ID is such a lame-ass high number.
  3. Somewhat disappointing book by Anonymous Coward · · Score: 4
    Before buying this book, I read that it would be effective for quickly coming up to speed and getting CVS working. This wasn't the case for me.

    First, there's a pretty grievous error in the inetd config line he gives which makes the server not run. I can't remember the entire line but remove the duplicate 'cvs' text.

    Second, although I know it doesn't fit in with the theme of the book, there isn't much in the way of setting up CVS for commercial use. In my case, I want to have CVS controlling both some OS and commercial code. Setting up SSH access, multiple CVS servers, access control, etc are not covered very well, if at all. Unfortunately, these are the same topics the Cederqvist doesn't cover either. I was hoping this book would fill in those gaps but it just doesn't.

    On the upside, the author frequents the cvs newsgroup so you're likely to get book questions answered there (the group is pretty good for questions in general as well).

  4. Re:CVS vs VSS by selectap · · Score: 4
    I've used both before, and here's my take:

    If you're using strictly MS tools and you're not dealing with a lot of files, then VSS should do OK for you. Visual C, VB and family make it very easy to check files in and out of VSS, and it also makes it easy to deploy content to IIS based web sites. (although I know nothing about how secure that is)

    If you're dealing with a large project, I think that it greatly increases the chance of the VSS database corrupting, which to me is one of the biggest flaws and a major reason why I would not use VSS.

    The advantages of CVS are:

    Simple file format eliminates chances of corruption. I've moved our repository to 3 different machines without any problems...I just had to tarball the cvs root directory and move it.

    Support for multiple OS's, including a VSS-like client for windows

    Comes by default with many Linux distributions, so all you have to do is dig up that old 486, put a good size HD on it, and you have instant version control.

    Conflict resolution works just as well as VSS, if not better.

    No license fees. :)