Old and outdate info, needs to be updated.

CVS Layout

The code for Koha is managed using a program called CVS (Concurrent Versions System). CVS allows us to keep track of changes made to the code, including the ability to have multiple branches of the code being worked on simultneously.

CVS Reference Sites

The following sites have good information on using CVS.

[http://www.cvshome.org/ CVS Home] [http://cvsbook.red-bean.com/ The CVS Book] [http://sourceforge.net/cvs/?group_id=16466 CVS access information at SourceForge.net]


At any given time, there will likely be at least two active branches of Koha being worked on. One branch will be the stable branch and will consist of a copy of the code as it existed when the last stable version of Koha was released. This branch will typically be labelled rel-1-2, rel-2-0, rel-2-2, etc. rel-1-2 will contain the branch for versions 1.2.0, 1.2.1, 1.2.2, etc. rel-2-0 will be the branch that contains releases 2.0.0, 2.0.1, 2.0.2, etc.

At the same time, the main trunk of CVS will contain the unstable branch of Koha code. This will contain the most recently developed code, and will also be the most likely to be broken at any given time. When you are checking out Koha code from CVS, be careful that you check out the stable branch if that is what you are looking for. By default a CVS client will check out the trunk branch, which will always be the unstable branch.

Within each branch, there will be tags that mark the location of particular releases. In the rel-1-2 branch, for example, there will be tags marking 1.2.1, 1.2.2, and 1.2.3. There may also be tags marking release candidates although I (steve) tend to remove them after major releases have occurred.

Location of Files

There are three cvs modules in the Koha CVS hierarchy:

  • koha - Contains all of the perl scripts and modules
    • root - The root directory of the koha CVS modules contains all of Koha's CGI scripts
      • acqui - cgi scripts used by normal acquisitions process
      • acqui-simple - cgi scripts used by the simple acquisitions process
      • admin - cgi scripts for configuring various aspects of Koha
      • circ - Circulation cgi scripts
    • C4 - The C4 directory contains all of the Perl modules that Koha uses. C4 was the original working name of Koha in 1999.
    • opac - The opac directory contains all of the cgi scripts used by Koha's OPAC interface.
    • t - Koha tests directory. This directory contains Koha's test scripts written using Test::Harness
    • misc - contains various standalone scripts designed to be run from a command-line primarily
    • telnet - The code for Koha's console based circulation module (actively used by Horowhenua, but not well maintained)
    • tkperl - A tk-perl circulation client for Koha (neither used nor maintained)
    • updater - Scripts for upgrading from one version of Koha to another.
  • koha-html - Contains flat html files and graphics… this repository has been pretty much replaced by koha-tmpl
  • koha-tmpl - Contains the html templates for Koha, this includes themes, language translation files, and graphics.
    • koha-tmpl is divided into opac-tmpl and intranet-tmpl… templates for the OPAC and librarian interfaces respectively. Within each of these, there will be a directory for each 'theme'. The default theme will be called 'default'. Within each theme there will be a directory for each language (eg: en, fr, de, es, etc.)

The location of files in CVS will never exactly match their final location in an installed copy of Koha. There is a script in CVS called “buildrelease” that will take the CVS files and create a tarball that can be used to install Koha. In the rel-1-2 branch, this file is in the root of the 'koha' CVS module. In the main trunk, it has been moved to the misc subdirectory in the 'koha' CVS module.

cvslayout.txt · Last modified: 2007/06/24 19:00 by chrisc
Except where otherwise noted, content on this wiki is licensed under the following license:CC Attribution-Noncommercial-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki