NOTE: For this, I assume you have the enviroment vairiable CVSROOT set. If you dont have it set, you can do two things:
  1. Set it by editing either ~/.profile or ~/.bashrc and adding lines that look like this:
    CVSROOT = "/your/cvs/root"
    export CVSROOT
  2. Add the -d switch to commands, like this:
    cvs -d /your/cvs/root checkout httpc

A normal session

  1. Check out the package:
    Command me $ cvs checkout httpc
    cvs checkout: Updating httpc

    U httpc/.cvsignore

    U httpc/Makefile

    U httpc/httpc.c

    U httpc/poll-server

    Command me $ cd httpc
    Command me $ ls -a1

    .
    ..
    .cvsignore
    Makefile
    httpc.c
    poll-server

    Command me $
  2. Now you can go and edit the files.
    Keeping in mind:
  3. Now you are done making changes, and you need to merge them with the files on the server.

    First thing you need to do is make sure no one else has made any changes to the file(s) you have worked on.

    Command me $ cvs update

    cvs update: Updating .

    U Makefile

    RCS file: /u/src/master/httpc/httpc.c,v

    retrieving revision 1.6

    retrieving revision 1.7

    Merging differences between 1.6 and 1.7 into httpc.c

    M httpc.c

    Command me $

    Line by line:
    U Makefile: Any file with a U before it means it has been Updated (someone else has changed it), and it has been updated on your computer too.
    RCS file: ... retrieving revision 1.6 retrieving revision 1.7 Merging differences between 1.6 and 1.7 into httpc.c: This means someone else has edited httpc.c, a file you have also edited, and none of the changes conflict, so the file has been updated. If there IS a conflict, it will appear in the file and you will have to go in and edit it manually later
    M httpc.c: This means you have Modified the file but you have not yet made the changes public (they have not been commited yet)

    If someone else has changed the code, it is a good idea to test it again just to make sure it works. Repeat the process untill cvs update does not have anything to update.

  4. Now its time to commit the changes.
    Command me $ cd ..
    Command me $ cvs commit httpc

    ... CVS will now ask you to fill out a log entry ...

    Checking in httpc;

    new revision: 1.8; previous revision: 1.7

    Command me $

    Now your changes have been commited and they will be visible to the rest of the group.

  5. Now you can tell CVS you are done
    You have two options here. You can:
    1. Delete the code:
      Command me $ cvs release -d httpc

      ... CVS asks you if you are sure ...

      Command me $
    2. Or just leave it as it is, then run cvs update the next time you want to work on it

    And thats it! Your done!

Creating a CVS project

Note: If CVS is allready set up, ignore the first two steps.

  1. Create an empty repository
    Command me $ cvs init

  2. Edit the file cvswrappers to cope with any binary (non-text) file you might use
    Command me $ cvs checkout CVSROOT
    Command me $ vim CVSROOT/cvswrappers

    ... add lines like this *.jpg -k 'b' ...

    Command me $ cvs commit CVSROOT -m "Added binary file types to cvswrappers"
    Command me $ cvs release -d CVSROOT

  3. Now add your projects
    Command me $ cd ~/code/my_project/
    Command me $ cvs import my_project your_name release_tag

    ... Where you will replace my_project with the name you want your project to have with in the repository (its module name), your_name with something like your name, groups name, etc andnrelease_tag with something like "initial_import", or some other descriptive tag for this release ...

References

Here are the sites I used to compile this one. They say everythign this one does, just in more words and with a much better layout.