2. The CVS Repository

If you become part of the active development team, you will eventually need write access to our holy grail, the CVS repository. One of the team members will need to set this up for you. Please read this chapter completely before accessing via CVS.

2.1. Access to CVS

The project's CVS repository is hosted on SourceForge. Please refer to the chapters 6 and 7 in SF's site documentation for the technical access details for your operating system. For historical reasons, the CVS server is called cvs.ijbswa.sourceforge.net, the repository is called ijbswa, and the source tree module is called current.

2.2. Branches

Within the CVS repository, there are modules and branches. As mentioned, the sources are in the current "module". Other modules are present for platform specific issues. There is a webview of the CVS hierarchy at http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/ijbswa/, which might help with visualizing how these pieces fit together.

Branches are used to fork a sub-development path from the main trunk. Within the current module where the sources are, there is always at least one "branch" from the main trunk devoted to a stable release series. The main trunk is where active development takes place for the next stable series (e.g. 3.2.x). So just prior to each stable series (e.g. 3.0.x), a branch is created just for stable series releases (e.g. 3.0.0 -> 3.0.1 -> 3.0.2, etc). Once the initial stable release of any stable branch has taken place, this branch is only used for bugfixes, which have had prior testing before being committed to CVS. (See Version Numbers below for details on versioning.)

This will result in at least two active branches, which means there may be occasions that require the same (or similar) item to be checked into to two different places (assuming its a bugfix and needs fixing in both the stable and unstable trees). This also means that in order to have access to both trees, both will have to be checked out separately. Use the cvs -r flag to check out a branch, e.g: cvs co -r v_3_0_branch current.

2.3. CVS Commit Guidelines

The source tree is the heart of every software project. Every effort must be made to ensure that it is readable, compilable and consistent at all times. There are differing guidelines for the stable branch and the main development trunk, and we ask anyone with CVS access to strictly adhere to the following guidelines:

Basic Guidelines, for all branches:

Stable branches are handled with more care, especially after the initial *.*.0 release, and we are just in bugfix mode. In addition to the above, the below applies only to the stable branch (currently the v_3_0_branch branch):