CVS for the OpenGLTM for JavaTM Project

Introduction

We're using CVS quiet heavily and have a fairly structured layout of the repository. This document should explain how we're using CVS and what material is stored where.

When you do a normal checkout of a CVS tree, you get a default set of files. This set of files is called the trunk. CVS also supports a concept called branches. Branches are named sections of the CVS tree that diverge from the trunk code.

In our repository, the trunk will always be the latest code that is believed to be stable and work. Changes made in any of the branches will be merged into the trunk when they are deemed ready. As a developer who isn't writing code you should normally be doing your checkouts from the trunk. Each developer who is writing new code in the tree will be working in a branch. They will be doing frequent checkins to their branch. Because of this it is likely that the code they check in may not work at any given point in time. They do frequent checkins to have saved copies of their work and so that other developers who might want to examine the code can do so. It should be a rare case that any developer looks at another developers branch.

How to check out the trunk

If you want to download the new source tree, do this:

As anonymous:

      cvs -d:pserver:anonymous@cvs.gl4java.sourceforge.net:/cvsroot/gl4java login 
      cvs -z3 -d:pserver:anonymous@cvs.gl4java.sourceforge.net:/cvsroot/gl4java co GL4Java
As a developer:
      export CVS_RSH=ssh 
      cvs -z3 -ddevelopername@cvs.gl4java.sourceforge.net:/cvsroot/gl4java co GL4Java

How to check out a branch

If you want to download a branch new source tree using a particular CVS branch, do this (replacing "branchname" appropriately):

As anonymous:

      cvs -d:pserver:anonymous@cvs.gl4java.sourceforge.net:/cvsroot/gl4java login 
      cvs -z3 -d:pserver:anonymous@cvs.gl4java.sourceforge.net:/cvsroot/gl4java co -r branchname GL4Java
As a developer:
      cvs -z3 -ddevelopername@cvs.gl4java.sourceforge.net:/cvsroot/gl4java co -r branchname GL4Java
If you want to update your current source tree to get on a particular CVS branch, first cd to your GL4Java root directory (GL4Java/) then do this:

As anonymous:

      cvs -z3 -d:pserver:anonymous@cvs.gl4java.sourceforge.net:/cvsroot/gl4java update -rdP branchname
As a developer:
      cvs -z3 update -rdP branchname

-r specifies the branch tag, -d builds new directories, -P prunes dead directories.

How to Update your working copy

To update your working copy to be in sync with the CVS repository use:
      cvs -z3 update -Pd 
(after setting up CVSROOT and CVS_RSH as outline previously)

How to Commit Changes and Adding Files to the CVS Repositiory (Developer)

For commiting the changes to a file:
      cvs commit -m "comment about changes." 
(after setting up CVSROOT and CVS_RSH as outline previously) To add a new file to the CVS repository:
      cvs add filename 
      cvs commit -m "added filename" 
(after setting up CVSROOT and CVS_RSH as outline previously) ...and now you're ready to go !

The Branches

Since there are several projects underway in the same source tree, there are a number of branches under development.

Current Branches

trunk
This is the main branch of working code.