Managing project source code

Getting started

If you are new to CVS, this help guide provides some basic quick reference information for administrative CVS tasks relevant to projects hosted this site. This guide by no means exhaustively documents CVS or the many broader project management issues imputed by versioning control. A wealth of published documentation for CVS exists, both online and in print. The following links lead to general CVS tool documentation elsewhere on this site, and these documents include many authoritative, external CVS resources.

CVS tool documentation

About CVS repository tasks

Much of the administrative work involved with setting up your project's source repository is handled "behind the scenes" when your project gains approval. If you are new to CVS, this means that you do not have to start from scratch to set up the CVS repository for your project.

The following tasks occur automatically:

For CVS experts, this automation means that the CVS administrative module is preconfigured for projects hosted on this site. That includes the following files, listed here for your information:

All CVS repository tasks such as backing up, restoring, moving, or configuring remote repository access are also handled by site administrators. Should your project require editing CVS administrative files or other repository-level actions, you must contact a site administrator for support.

A few initial considerations for project owners

Starting from scratch

When your project is completely new or still in infancy, plan the overall directory structure at the front end of project evolution. Although the top level CVS module structure is predetermined, decide how you generally want to organize source files so that you can communicate this to existing and potential contributors. Considering source structure early on enables you to maintain consistency as the project grows, and makes it easier for new contributors to get up to speed.

A good example of communicating overall project source structure is in the design document for the scarab open source project which uses a graphic depiction. ViewCVS source browsing, provided with all projects hosted on this site, also allows users to explore your project's source structure.

Version control project management issues

As the project owner, you are likely to deal with developers who are grappling with the differences between RCS and CVS. Here are some key differences to clarify:

Managing CVS permissions

CVS read-access to your project's source code for site users is determined by whether your project is licensed open source or proprietary. Open source projects allow source file read access for any site user by default, whether or not they are project members. Proprietary project pages are not publicly viewable, so source code access is restricted to project members.

In both open source and proprietary projects, however, you as the Project Owner determine which project members will gain CVS write-access permissions through the roles you grant to them.

Observers, that is, users you have approved for project membership but who are not actually contributing source code to the project, have read-access but not write-access to your project's source repository . They can check out, view, compare revisions, and update source files, but they cannot contribute modified files or new files to the source repository.

All other project membership roles automatically confer cvs write-access to project members. This includes the ability to:

Read-write permissions associated with individual files are administered separately from CVS. Note that these permissions cannot be altered for a file once it is checked into the project's CVS repository.