Menu

CVS

There is a newer version of this page. You can find it here.

Important: The CVS services has been temporarily suspended due to a recent attack on our servers. We are working hard to restore service; please see http://sourceforge.net/blog/sourceforge-attack-full-report/ for more information.

What is CVS?

CVS (Concurrent Versions System) is a Source Code Management (SCM), a tool for software developers which supports collaborative development of software within a team, and the tracking of changes to software source code over time.

CVS was the first SCM supported at SourceForge.net. We generally recommend that new projects select a more modern SCM, like Subversion, rather than using CVS. CVS has limitations which newer SCM solutions have been designed to overcome. We continue to support CVS for those projects who decide that CVS adequately supports their needs.

CVS is used by developers, and advanced users who need the very latest changes to the software (before releases occur). Software users generally do not need CVS; typically they will download official file releases made available by the project instead.

Developers should familiarize themselves with CVS by reading Open Source Development with CVS, 3rd Edition and the Ximbiot - CVS Wiki.

Modern SCM facilities

Here's a nice writeup of why you should consider using a Distributed Version Control System (DVCS), and a comparison of the major DVCSs: http://www.infoq.com/articles/dvcs-guide

Features

SourceForge.net provides the following features in its CVS offering:

  • All standard features of CVS 1.11.x are supported.
  • Developer (read-write) access is provided via CVS over SSH.
  • Anonymous (read-only) access is provided via CVS pserver.
  • A number of CVS clients are supported, including:
  • TortoiseCVS (MS Windows), which can be used in conjunction with PuTTY
  • The official CVS client (Mac OS X, Linux, BSD), which can be used in conjunction with OpenSSH
  • WinCvs (MS Windows), which can be used in conjunction with PuTTY.
  • Repositories may be viewed via web browser via ViewVC.
  • Commit notifications may be made by email using CVS syncmail.
  • Pre-commit and post-commit scripts are supported in several languages.
  • Permissions may be managed as follows:
  • Repository access may be granted or revoked from a developer using the Project Admin interface.
  • Fine-grained access controls may be implemented using cvs_acls.
  • Administrators may manage the repository at a filesystem level using our Interactive shell service.
  • Existing repositories may be imported using our Interactive shell service.
  • Repository backups and mirroring may be performed using rsync.
  • Commit and checkout events are counted in the statistics system.
  • Service usage is not restricted by quotas.

Management

CVS service may be enabled for your project as follows:

Login as a project administrator and go to the Develop page for your project.
Under the Project Menu pulldown menu, click Feature Settings.
Under the Available Features tab, check the Enabled checkbox. Your repository will be created within a few minutes.

Access

The standard way to modify the contents of your repository is using a CVS client.

CVS admins may also directly modify the repository contents via the interactive shell service. The adminrepo command line tool is used to manage CVS repositories; see adminrepo --help from within a project shell for more information on how to use adminrepo.

Backups

SourceForge.net performs routine backups for all of our servers and will restore from these backups in the event of catastrophic server failure. We encourage projects to make their own backups of CVS data as that data restore can be performed by the project in the event of accidental data destruction by a member of the project team.

Backups of a CVS repository may be made using rsync.

Example (replace PROJECTNAME with the UNIX group name of your project):

rsync -av rsync://PROJECTNAME.cvs.sourceforge.net/cvsroot/PROJECTNAME/* .