02. Versioning system

Unknown macro: {scrollbar}

A Versioning System is a developer tool which allows to record and keep the history of source files. On JFreeReport we are using the CVS (Concurrent Versioning System) offered by SourceForge.

If you planned to use the files from the versioning system, you will need to setup a client on your computer to access to it. In some cases, if you only want to check or look a file, you can browse it throw the cvs web interface.

Concerning clients, Integrated Developement Environment (IDE) often integrate this functionality so check out the documentation of the one you are using. If you have no luck or you prefer to not use their embedded functionalities, you can use dedicated clients running in graphical environments or not. It is now up to you to choose which client you like the most.

Here is a limited list of CVS clients (for the others ask to your prefered search engine):

  • TortoiseCVS - A Windows graphical frontend realy powerful.
  • Cervisia - A Linux graphical frontend for KDE.
  • The Linux command line client.

Once you are ready with the previous things, we will show you how to access to our project CVS. First of all, you have to know that the access to a CVS is restricted by usenames. As for example, you will have only the rights to read or you will be allowed to write an so on... As you are lucky, you don't need to resgister on SourceForge because the is an anonymous access on read only.

Here is an URI using the ''pserver'' protocol (default port is 2401):

:pserver:<developername>@jfreereport.cvs.sourceforge.net:/cvsroot/jfreereport

Here is an URI using an external protocol, as for example ''ssh'' (default port is 22):

:ext:<developername>@jfreereport.cvs.sourceforge.net:/cvsroot/jfreereport

The previous URIs are built on the following schema :

:protocol:username@hostname:repository

The next step is just to make a ''check out'' to retrieve the entiere repository to your computer. If you planned to be a developer you will need to be added to the project developer list on SourceForge to be able to ''commit'' and so on. Here are some commands to check out:

# If you are not a developer
$> cvs -d:pserver:anonymous@jfreereport.cvs.sourceforge.net:/cvsroot/jfreereport login
$> cvs -z3 -d:pserver:anonymous@jfreereport.cvs.sourceforge.net:/cvsroot/jfreereport [-r release-0_8_7-branch] co [-P modulename] [/local/path/]
# If you are a developer
$> export CVS_RSH=ssh
$> cvs -z3 -d:ext:@jfreereport.cvs.sourceforge.net:/cvsroot/jfreereport [-r release-0_8_7-branch] co [-P modulename] [/local/path/]

The parts between square brackets are not mandatory, so you may choose to use them or not but we will some explanations about the -r and -p options:
The -r option is used to retrieve a specific branch of the developement repository, the two important branch are release-0_8_7-branch and MAIN. The MAIN branch is used for the development of the next realease of JFreeReport (0.9) and is realy different from the 0.8.7 version you should be using right now. MAIN is the default branch selected if you do not specify it in your CVS client.
The -p option is used to retrieve a specific module, if you do not specify any module the whole repository will be dowloaded. JFreeReport project has created the following modules : flute, jcommon-serializer, jfreereport, jfreereport-ext, jfreereport-server, jfreereport-tools, libfonts, libformat, libformula, liblayout, libloader, librepository, libxml, pixie, ...
If you need more informations about CVS, feel free to go to the SourceForge CVS help page or to read the Open Source Development with CVS book.