CVS has two important organizational features: modules and branches. Modules divide the repository into categories based on function; a module might contain an application, a library, or even one of the KDE Web sites. Branches divide the repository into categories based on the version allowing for concurrent development of multiple versions.
Modules are given names that correspond to same-level nodes in a tree, like subdirectories all residing in the same parent directory. In fact, each module contains files and directories and is stored in a single directory on your local disk by the cvs client when it is downloaded. The modules are described in Table 17.1.
Table 17.1. Current KDE CVS Modules
|kde-common||Support files needed by most other modules.|
|kdesupport||Libraries not created as part of KDE but needed to run it.|
|kdelibs||The KDE class libraries.|
|kdebase||Applications that form the desktop: kfm, kpanel, and so on.|
|kdeutils||Utility programs such as KWrite, KCalc, and KFloppy.|
|kde-i18n||Translations of KDE applications.|
|kdegraphics||File-viewing applications for ostscript, dvi, JPEG, and so on.|
|kdebindings||Alpha code for Python-KDE bindings.|
|kdegames||Games for KDE, such as kasteroids, kpat, and so on.|
|kdenonbeta||Projects not yet ready for inclusion in KDE.|
|kdesdk||The KDE Software Developer's Kit.|
|kdetoys||Fun KDE programs such as kmoon, which graphically indicates the phase of the moon.|
|kdevelop||An integrated development environment (IDE) for KDE.|
|kfte||A programmer's editor.|
|klyx||A system for editing, viewing, and typesetting documents using LaTeX.|
|kmusic||Music composition tools.|
|koffice||An office suit including kword, kspread, and kimageshop.|
|korganizer||A personal information manager.|
Whenever a new version of KDE is released, a CVS branch is marked with a text string identifier. These identifiers are used to keep track of multiple versions of KDE at one time. For example, KDE 2.0 could be developed while bug fixes and feature additions were made to KDE 1.0. The releases KDE 1.1, 1.1.1, and 1.1.2 were based on the KDE 1.1 branch (called KDE_1_1_BRANCH) while KDE 2.0 continued in the main CVS branch (called HEAD).