Trustworthy Systems

Experience using CVS for long-running projects, or, lost in a monkey-puzzle tree


Peter Chubb

Softway Pty Ltd


CVS, the concurrent version system is a wonderful freely available tool for helping to manage bodies of electronic data where changes are being made by different groups at the same time.

Softway uses CVS internally for managing several products that involve modifying existing UNIX source code. Because of licensing and other restrictions, we have to split the repositories over separate machines, but maintain some part of the repository in common. CVS allows one to tag a file --- to assign a label to a particular revision of that file. Some tags indicate a branch --- a whole set of revisions derived from the tagged revision.

After a project has been running for several years, it accumulates enough branches and tags to resemble a monkey-puzzle tree. Manual or semi-automatic procedures are needed to determine what tags are what.

CVS is not enough, on its own, to perform the kinds of change management we need. We have added to it various manual operations, and used the RCS state field to track release status.

After beginning to create tools for better managing branches and tags, we discovered the cvslines package, which do a better job. Moreover, recent versions of CVS provide new features that aid in controlling source.

BibTeX Entry

    address          = {Sydney, Australia},
    author           = {Peter Chubb},
    booktitle        = {Auug Winter Conference},
    month            = sep,
    pages            = {50--58},
    title            = {Experience using {CVS} for Long-Running Projects, or, Lost in a Monkey-Puzzle Tree},
    year             = {1998}