Chapter 5. Introducing CVS

Abstract

Explains what CVS, how it works and why the ReactOS project uses it.

Concurrent Versions System

CVS stands for Concurrent Versions System. CVS provides two crucial elements:

  • Central source code repository
  • Version control of the source code

Central source code repository

A CVS repository is a central location for all CVS information to be stored. This includes all versions of all the files that compromise the source code and versioning information about the files. The ReactOS CVS repository is maintained by Rex Jolliff (rex at lvcablemodem dot com) on his server "Mok". A central repository allows the ReactOS project to work together more efficiently.

Version control of the source code

CVS maintains a copy of each version of each file in the repository. Every time an update is made to a file in the repository, the version number goes up and prevoius versions are preserved. This is extremely useful as you can always backtrack and see what changes where made and when. Even if a file is deleted from the latest version of the source, its history is still maintained. Versioning is essential to the ReactOS project as many people are constantly working on the same source tree.

Your local source tree

You will need to download the latest source from CVS to create your own local source tree. Once you have this local source tree, you can compile it, make changes and add or remove files. Any modifications you make can stay local to your tree or you can commit your changes to the central repository, so that everyone can update their local trees with the changes you have made. To do all of this you will need a CVS client. You will learn how to download, configure and use this client in subsequent sections.