Chapter 5. CVS Access for JBoss Sources

Source code is available for every JBoss module and any version of JBoss can be built from source by downloading the appropriate version of the code from the JBoss Forge CVS Repository.

5.1. Understanding CVS

CVS (Concurrent Versions System) is an Open Source version control system that is used pervasively throughout the Open Source community. It keeps track of source changes made by groups of developers who are working on the same files and enables developers to stay in sync with each other as each individual chooses.

5.2. Obtaining a CVS Client

The command line version of the CVS program is freely available for nearly every platform and is included by default on most Linux and UNIX distributions. A good port of CVS as well as numerous other UNIX programs for Win32 platforms is available from Cygwin.

The syntax of the command line version of CVS will be examined because this is common across all platforms.

For complete documentation on CVS, check out The CVS Home Page.

5.3. Anonymous CVS Access

Note that the anonymous repository is a mirror of the comitter repository that is synched every 5 minutes.

All JBoss projects' CVS repositories can be accessed through anonymous(pserver) CVS with the following instruction set. The module you want to check out must be specified as the modulename. When prompted for a password for anonymous, simply press the Enter key.

The general syntax of the command line version of CVS for anonymous access to the JBoss repositories is:


cvs -d:pserver:anonymous@anoncvs.forge.jboss.com:/cvsroot/jboss login
cvs -z3 -d:pserver:anonymous@anoncvs.forge.jboss.com:/cvsroot/jboss co modulename

The first command logs into JBoss CVS repository as an anonymous user. This command only needs to be performed once for each machine on which you use CVS because the login information will be saved in your HOME/.cvspass file or equivalent for your system. The second command checks out a copy of the modulename source code into the directory from which you run the cvs command.

To avoid having to type the long cvs command line each time, you can set up a CVSROOT environment variable.


set CVSROOT=:pserver:anonymous@anoncvs.forge.jboss.com:/cvsroot/jboss

The abbreviated versions of the previous commands can then be used:


cvs login
cvs -z3 co modulename

The name of the JBoss module alias you use depends on the version of JBoss you want. For the 3.0 branch the module name is jboss-3.0, for the 3.2 branch it is jboss-3.2. To obtain more up-to-date information on module naming, refer to JBossAS Modules on our wiki.

To checkout the HEAD revision of jboss (latest code on the main branch), you would use jboss-head as the module name.

Releases of JBoss are tagged with the pattern JBoss_X_Y_Z where X is the major version, Y is the minor version and Z is the patch version. Release branches of JBoss are tagged with the pattern Branch_X_Y. For more information on Release Tagging Standards, refer to Chapter 14

Some checkout examples are:


cvs co -r JBoss_3_2_6 jboss-3.2 # Checkout the 3.2.6 release version code
cvs co jboss-head # Checkout the curent HEAD branch code

You can also browse the repository using the web interface . If you are stuck behind a firewall without pserver port access, you can even use fisheye to pull the repo using cvsgrab.


$ cd /tmp/cvsgrab/
$ cvsgrab -webInterface FishEye1_0 -url \
     http://anoncvs.forge.jboss.com/viewrep/JBoss/jrunit -destDir

This will create the JBoss/jrunit directory. Just replace jrunit with the module you want. If you want to check out the entire repo with cvsgrab, just omit the module:


$ cd /tmp/cvsgrab/
$ cvsgrab -webInterface FishEye1_0 -url \
     http://anoncvs.forge.jboss.com/viewrep/JBoss -destDir 

Or, if you want a branch:


$ cd /tmp/cvsgrab/
$ cvsgrab -webInterface FishEye1_0 -url \
     http://anoncvs.forge.jboss.com/viewrep/~br=Branch_4_0/JBoss -destDir 

Or a tag:


$ cd /tmp/cvsgrab/
$ cvsgrab -webInterface FishEye1_0 -url \
     http://anoncvs.forge.jboss.com/viewrep/~br=Branch_4_0,tag=sometag/JBoss -destDir 

5.4. Committer Access to CVS and JIRA

Write access to the repository is granted only on approval by the Forge Administrator. To request write access send an email to forge-admin@jboss.com asking for committer access.

On approval, you will be given read/write access to the repository and a committer status in JIRA. It is required that you have a committer role in JIRA. The Forge Admin will make sure that you have the proper role and permission status.

To use the committer repository:
export CVS_RSH=ssh
export CVSROOT=:ext:username@cvs.forge.jboss.com:/cvsroot/jboss

If you are a JBoss employee, your username is the same as your existing cvs.jboss.com username.

If you are not a JBoss Employee, then your username is your existing SourceForge username OR your jboss.com username.

There is NO shell access, only cvs over ssh, similar to SourceForge.

All commiter access is authenticated via SSH. There is no password based committer access. You need to supply an SSH protocol verison 2 public key for access to be granted.

This could be done using the ssh-keygen utility as:
ssh-keygen -t dsa -C 'cvs.forge.jboss.com access' -f mykey
or
ssh-keygen -t rsa -C 'cvs.forge.jboss.com access' -f mykey

If you don't know your username or have any trouble, just send an email to forge-admin@jboss.com.

For committer access requests, please include:

  • Your full name.
  • Your SSH public key.
  • A valid email address for us to use.
  • Your SourceForge username IF you had committer access before the CVS migration
  • Your jboss.org website username.