Slashdot Mirror


CVS Pocket Reference

On-the-fly organization may suffice for keeping track of scripts /bin on your local machine, but larger projects have more at stake when it comes to coordinating the effort of programmers, especially when they're not even in the same timezone, never mind in the same room. CVS has become the lifeblood of many such projects. Reader Craig Pfeifer suggests CVS Pocket Reference as a good way to help keep that lifeblood flowing.

CVS Pocket Reference author Gregor N. Purdy pages 75 publisher O'Reilly & Associates rating 8 reviewer Craig Pfeifer ISBN 0596000030 summary Indispensable handbook for administrators of all but small CVS installations, and probably for the small ones as well.

The Scenario

As a former CVS repository administrator, I wish I had this book when I started, it's much easier than pawing through the canonical documentation for quick answers. CVS is the #1 choice for open source projects. If you plan on organizing or working on an Open Source project, this is reference might be for you.

What's Good?

This pocket reference is a guide to basic CVS functions (branch, merge, update) but the real strength is in the description of server and client side control files and environment variables. Gregor describes how to setup email notification when someone commits a change to the repository, how to customize the repository to treat certain files as binary (versus text), and other useful things. He even goes as far as to describe how to hack the repository to change it's structure while the project is in motion, and how to hack the sandbox (the name for a developer's work space) to change any property such as which branch or repository the files will be committed to. Of course you don't really need this because developers never make mistakes, it's always CVS' fault &ltwink wink&gt. All in all, it's a great reference for all the bits and pieces of CVS that you're supposed to mess with (and a few your aren't) and anyone who is expected to administer a moderately complex installation should own it.

Gregor also gives pointers to some great add-on modules for CVS: CVSWeb for making your source tree web-browsable, and WinCVS to make CVS look SourceSafe-esque.

What's Bad?

The organization of this pocket reference could use a little help. I've seen reviews for other O'Reilly pocket references ask for an index, but that wouldn't be helpful here. It would be helpful if they added section tabs in the outside margins of the pages (a la their java nutshell series), so that you could quickly thumb to the section you're looking for. Also, organizing the content by server side and client side instead of simply adminstrator and user would help folks to find the specific information they are looking for.

My last gripe is a small, petty one. The books binding doesn't allow it lay flat when you set it down. Yes it's petty, but I hate losing my page when working. You need to keep a medium sized object with a decent bit of heft (e.g. a stapler) within arms' reach to hold it open.

So What's In It For Me?

This reference will not make you a CVS guru, but it will help you remember the command line options (if I had a nickel for every time I typed 'cvs --help tag' I would be frequently mistaken for a Kennedy), figure out what all those little files are without breaking your CVS installation, and most importantly keep you from having to consult the the cannonical documentation for simple things.

If you have inheirited a CVS installation or plan to set one up for the first time, spend the US$9.95/CN$14.95, do it right the first time and save yourself some time and reap all the bennies that CVS offers.

Table of Contents
  1. Introduction
  2. Installing CVS
  3. Administrator Reference
  4. User Reference
  5. Relata

You can purchase this book at ThinkGeek.

11 of 112 comments (clear)

  1. Re:cvs for backup by Pilchie · · Score: 4

    Actually, CVS clients send the entire file contents when committing. It is only updates that send a diff. This is because the CVS metadata doesn't store what your copy looked like before you changed it. Wait for Subversion(M2 expected RSN (1 April 2001)), for a system that will send diffs both directions, as well as a whole lot more.
    >~~~~~~~~~~~~~~~~

    --
    >~~~~~~~~~~~~~~~~
    Pilchie
  2. Re:Use Visual SourceSafe by Dave+W · · Score: 3

    John,

    I have used PCVS, Source Integrity and CVS. My feeling is

    1. Forget PVCS depending on your need both CVS and Source Integrity are better.

    2. If you use a language like Delphi where you need to lock files when you edit them (because they are binary and simultaneous changes cannot be merged) then Source Integrity is excellent.

    3. For distributed development of systems where all the code is in text files (java, C, C++, python, perl, php etc etc etc) then cvs is excellent due to the way it can merge changes to the same file by different people.

    If you want to look at an outsider that could be the very best look at bitkeeper.

    Dave

  3. I love CVS by PD · · Score: 3

    but the last time I actually was able to use it in a job that I was paid for was 1993.

    I've used pvcs lots, and rcs too. Can I tell you how much it sucks when some fool on the team comes in at 6:30 AM and locks the one single header that everyone needs, and doesn't check it in until he goes home at 4PM?

    a) CVS is great for that situation. It would also help to lay out header files in a smart way. Alas, I hardly ever get to start a project, but I sure as hell finish them.

    b) pvcs sucks because of the rule that the suckiest and most selfish programmer on the team also happens to be a bright and cheery early riser, just so he can check out that important file before I get my hands on it.

    c) I haven't mentioned clearcase. The less said about that horrendous mess the better.

  4. No nutshell here by platinum · · Score: 3

    This doesn't appear to be 'CVS in a nutshell,' nor is it published by McGraw-Hill. In fact, this appears to be 'CVS pocket reference' by O'Reilly. Am I the only one confused?

  5. CVS Reference Card by ljavelin · · Score: 4

    You can also get a PDF-formatted CVS quick ref card at http://www.refcards.com/

  6. Re:Use Visual SourceSafe by cyberdonny · · Score: 3
    I'd be more concerned about the very real disk full problems that can show up in Visual Source Safe, than about the mythical CVS gnomes that eat your lunch.

    If you don't carefully monitor the available disk space, and regularly take backups, you may suddenly encounter the interesting situation that all your repository is trashed, because VSS is not able to correctly deal with low-resource conditions.

    Plus, VSS's command line interface sucks, which makes it somewhat hard to interconnect VSS with other programs such as Emacs' VC mode.

  7. disappointing book and overpraising review by Prestissimo · · Score: 3

    I hardly think this book deserves a rating of "8". The reviewer is correct, that the organization is poor, but that is an understatement.

    It tends to organize in a most-global to most-local fashion, but in doing so, it highlights the least frequently used information before the most frequently used info.

    The section called "User Reference" is arguably the most frequently used. But it is placed at the end, and is difficult to get to. It starts by listing all the environment variables that might apply to CVS, rather than describing the common commands and options. Furthermore, once you finally get to the description common commands, it is little more than a printout of typing cvs --help [command].

    The first 2/3 of the book covers server-side tasks and focuses on one-time setup issues, like compiling and installing the program.

    If someone wants to use this book as a quick reference, that organization is completely backwards.

    Even the layout is lacking. There are many places where a page break would greatly help the readability. But instead, the layout is one long flow. (Even the major sections listed in the TOC don't start on a page break.)

    Overall, I am disappointed with the quality of existing CVS documentation, and this book is no help. It doesn't present common tasks in a clear and enlightening fashion. It has little information on some of the more interesting use cases that show the power of CVS. I now rarely use the book because it takes to long to flip through to the section I want. Instead, I rely on CVS's online usage info. Hopefully a revised version will improve on these weaknesses.

  8. Re:Use Visual SourceSafe by plover · · Score: 5
    Unfortunately, we suffer from PVCS Trolls in our office. They're little creatures who administer our PVCS server and arbitrarily deny rights to all and sundry.

    On the plus side, the PVCS Gnomes are still hard at work, damaging about one file in every 5000 checkouts. Since we have a 2100 file build at the moment, that's one in three builds getting trashed by this worthless system. We hope this is enough ammo to have PVCS shot, drawn and quartered, and sent to the Eastern front.

    We've been considering both Visual Source Safe (which we've had good luck with, but find it feature-poor) and CVS. I'd love any feedback anyone has comparing the two on a fairly large project, particularily where we have two sets of developers working off-site through slow IP links.

    John

    --
    John
  9. Why review a pocket reference (even a good one)? by johndiii · · Score: 3

    Maybe I'm missing something, but this article just seems to lack significance. Except for the point about organizing by client/server, rather than user/administrator, the review says nothing non-obvious. "It's a good pocket reference, except that I think the material should be organized by client-side and server-side, rather than by user/administrator." That's it.

    On the positive side, this may motivate me to investigate using CVS.

    --
    Floating face-down in a river of regret...and thoughts of you...
  10. Use Visual SourceSafe by JAVAC+THE+GREAT · · Score: 3
    Visual SourceSafe is much more reliable and easier to use than CVS. Plus, you do not have the problem of "CVS Gnomes." CVS Gnomes are little creatures that live inside CVS repositories and mysteriously undo changes to your code, or break previously working code.

    I personally have seen CVS Gnomes in my office, but upon attempting to communicate with them, they flee in fear. I do leave little pieces of cheese for them by where the ethernet goes into the wall, though, and I notice that every night they do not fail to eat it.

    Has anyone had success communicating with CVS Gnomes? If so, how did you do it? They seem to be afraid of me :(
    ---

  11. There's also this very good book online by Lobsang · · Score: 4

    You can find a good part of the Open Source Development With CVS book by Karl Fogel online at http://www.red-bean.com/cvsbook/cvsbook.html
    It's a very easy to read CVS book that begins with the basic steps of creating a repository and goes all the way to cover a lot of advanced aspects about using CVS on a daily basis.