Jump to >

CVS Repositories

Review Board supports posting and reviewing code on CVS repositories. All standard CVS repository configurations can be used.

To simplify posting changes to Review Board, we recommend using RBTools. This ensures that the diffs are in the correct format and makes managing review requests much easier. See Using RBTools with CVS for more information.


This guide assumes that you’re adding a CVS repository that’s hosted somewhere in your network or one that’s accessible by your Review Board server. Review Board requires local or network access to your repository.

Follow the documentation in the links below if your CVS repository is hosted on one of these services, as configuration may differ.

Installing CVS Support

Before you add the repository, you will need to install the cvs command line tool in a system path (or in a place accessible by your web server’s process). This can be installed through your system’s package manager.

See the installation guide for CVS.

Adding the Repository

To configure a CVS repository, first proceed to add the repository and select CVS from the Repository type field.

You will see a Path field, which should contain the CVSROOT for your repository. This can use any of the following CVS connection methods:

Determining Your CVSROOT

To determine the CVSROOT of an existing checkout, you can go to the top-most directory of the checkout and type:

$ cat CVS/Root

This will show the CVSROOT used for your repository. You can use the value as-is, or modify it to suit your needs. See below for more details.

Credential-Based CVSROOTs

If you’re using :pserver:, :gserver:, or :kserver:, you’re going to need to specify credentials (a username and password) for your repository. You can specify these credentials either in the Path field or in the Username and Password fields.

Credentials specified in Username and Password will only be used if using :pserver:, :gserver:, or :kserver connection methods, and if the credentials aren’t already provided in Path.


Specify the credentials outside of the CVSROOT, if possible. This will allow RBTools or other clients to locate your repository by CVSROOT, which may not be possible if it contains a username or password.


  • :pserver:cvs.example.com/cvsroot

  • :pserver:anonymous@cvs.example.com/cvsroot

  • :pserver:myuser:mypass@cvs.example.com:1234/cvsroot


If you’re using :ext:, :extssh:, or :ssh:, you will need to configure a SSH key in Review Board, and grant access on the repository. You will also need the specify the username, either in the CVSROOT or in the Username field. The Password field must be blank.


The :server: connection method should not be used, as it makes use of an internal SSH client that will not see your configured Review Board SSH key. It’s also not supported by all CVS implementations.


If your repository has an alternative :pserver: (or other) CVSROOT that people can use, you may want to specify it in the Mirror path field. This is used only for path matching when looking up repositories.


  • :extssh:cvs.example.com:/cvsroot

  • :ssh:localhost:22/cvsroot

  • :ssh:username@cvs.example.com:/cvsroot

  • :ext:username@cvs.example.com:/cvsroot

  • :ext:username@cvs.example.com:/cvsroot

  • :ext:cvs.example.com:/cvsroot


If your repository lives on the same machine as Review Board, you can refer to it by local path using :local: or :fork:.


You should specify the CVSROOT that users connecting to your server would use in the Mirror path field. This is used only for path matching when looking up repositories.


  • :local:C:\CVSROOTS\myproject

  • :local:/home/myuser/cvsroot

  • :fork:/home/myuser/cvsroot