====================
Getting GGI from CVS
====================

:Author: Christoph Egger
:Revision: $Revision: 1.3 $
:Revision date: $Date: 2004/03/02 12:36:24 $

.. contents::
   :depth: 1

This document can't and won't replace the `CVS bible`__. Instead it
tries to explain the structure of the GGI repository as well as the
specifics on how to access it.

__ http://www.es.usyd.edu.au/it/docs/books/open_source_dev_win_cvs-2e/OpenSourceDevWithCVS_2E.pdf

The CVS modules in alphabetical order:

* ggi-core        - The core libraries everyone needs
* ggi-demos       - advanced demos
* ggi-libs        - ggi libraries which are not extensions
* highlevel       - extensions with highlevel features
* html            - `homesite & documentation generation`__
* lowlevel        - extensions with lowlevel features
* misc            - helpful extensions
* tools           - extension generation, autobuilder, etc.
* wrappers        - language bindings and other wrappers
* xggi            - XGGI

__ topic-documenting.html

See https://sourceforge.net/cvs/?group_id=16307 on how to access the
CVS repository.


Developer branch
================

This is the CVS default branch, called CVS HEAD in the CVS
terminology.  Many people call it -devel or -cvs tree. BSD people call
it the -current tree.

It contains the current development going on. This is the place where
new features first enter CVS.

Some libraries only exist in the development branch as they are not
yet mature enough for a more formal release cycle.


Stable branches
===============

Some libraries provide the so called -stable branches. These are CVS
branches that are distributed as production-quality libraries and
follow a more strict release cycle.  Once a new release has been
tested and deemed ready to move out of -devel bugfixes, and bugfixes
only, will be released from the -stable branches for downstream
distribution.

The branch tags have the form: `branch_<major>_<minor>`, where `<major>`
and `<minor>` represents their version numbers.

For example, libgii has a `0.8.x` stable branch. `0` is the major and `8`
the minor version.  So the branch tag is `branch_0_8`

Each `library <../packages/>`__ enlists its available branch tags.

A branch can be accessed with the `-r <branchtag>` option using the
cvs commands checkout, export and update

Example:

::

  # checks out libgii's 0.8.x branch.
  #
  cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ggi checkout \
          -r branch_0_8 co ggi-core/libgii

