Chapter 4. CVS

Table of Contents

Howto
Watch Mode

The Jamama source code repository has moved to Sourceforge. Watch mode is on, so you need to use the command cvs edit to publicize your intention to change source code.

Howto

See the Resources and Traditional Client sections of my CVS HOWTO.

Before you run these commands, do yourself a favor and make a .cvsrc file containing

    cvs -z6 -q

This will use compression to speed up CVS transfers, and will turn off the Windows-like verbose messages that CVS is fond of. Users of third party CVS clients or wrappers will have to find out how to set these default for their client.

Unless you enjoy typing your password over and over, create a ssh key and upload it to the Sourceforge CVS server under your Account Options page at Sourceforge.

Typical CVS development procedure

Check out everything from the tip of the jamama-dev CVS module.

Example 4.1. CVS checkout of the Jamama development CVS module

    $ cvs -d :ext:cvs.sourceforge.net:/cvsroot/jamama co jamama-dev
    $ cd jamama-dev
Do your work

Edit files, unedit files, update, run ant commands to your heart's content. Here is a very small subset of some stuff you could do.

Example 4.2.  Working with resources with watch mode on.

    $ cd src/com/admc/jamama
    $ cvs edit AFile.java
    $ cvs update
    $ cd ../../../../docsrc/adoc
    $ cvs unedit docfile.texi
    $ cd ../..
    $ ant update
    $ ant
    $ ant doc
When you are finished, commit your changes.

Example 4.3.  Preparing for committing.

    $ cd /path/to/jamama-dev
    $ cvs update -d  # You will be notified of conflicts

Edit conflicting files (they are labelled with C in the update listing), and make sure the code still builds. Repeat until the cvs update command shows no C's. Continue once all conflicts are resolved...

Commit all of your additions
    $ cvs commit -m 'Your comment'

You can, of course, commit resources individually or by subdirectory branches. You will want to check in files individually if your changes warrent different log messages for different resources-- Use meaningful log messages!.