Getting started with CVS

First, note that this page is concerned only with accessing the repositories for groups on which you are a developer. If you simply want to check out code for a group and don't need to commit changes back, you should use anonymous access. Then, to use CVS on Savannah, you may first need to enable it for your group. See VCS Intro.

  1. Make sure you have correctly registered an SSH key for your machine with Savannah, as explained in SshAccess.

  2. Move into the local directory where you want to keep your local copy of the CVS tree. For example: mkdir ~/myproj-workingdir cd ~/myproj-workingdir

  3. Download the CVS tree structure as explained in the CVS page of your group (for example, under "Group member CVS access via SSH".

    Beware that username and groupname are case sensitive, unlike in the web interface.

    This will create an empty project directory, where you should start writing your project. If there is such no empty directory, check that you are not using the -P (prune directory) option in your command line or \~/.cvsrc file.

  4. You can now start creating any files you want in your local project directory (\~/myproj-workingdir/project in the example above). Every time you create a new file, you must add it and commit it to the repository with:

    cvs add filename cvs ci filename

    You might want to add an -m option to the commit command if you don't want to enter an edit session to type a log message:

    cvs ci -m "your log message" filename

    When you add a new subdirectory, you just have to add it, not to commit it:

    cvs add dirname

    When you start a new working session, you should first update your repository to get any changes made by other developers:

    cvs update

    And when you modify an existing file, you should commit the changes to the repository:

    cvs ci filename

  5. You can see the contents and history of your CVS repository via the ViewCVS interface. There are links to this interface in your group page.

  6. You may want to use a frontend to CVS; we recommend tkcvs.

    More info (and sources):

See also: CVS from behind firewall