Department of Information Technology


The CVS-server is reserved for repositories with more long-term use like projects or when external users without UNIX-accounts must have access.

If you want to create a CVS-repository for temporary use or for a short time, like assignments for a course, you should instead create a local CVS-repository.


We do have an SVN server too. Much the same rules apply for getting access to it. See below. Here the system administrators create the accounts and set things up. Please ask us for information until these pages are updated with the information.

Creating and maintaining a repository

You must first send a request to the system administrators to create a repository for you. Please give the following information when you put in a request in our request tracker.

  1. Name of the repository
  2. If you want to be able to create/remove users yourself
  3. If you wish to give some users read-only access
  4. If you wish to give anonymous users access (username "anonymous", empty password)

Creating users

You can only modifiy the passwd-file when you are logged in on
The program /it/sw/gnu/sbin/cvsd-passwd is used to create (and remove) users. Please note that all usernames and passwords on the cvs-server has nothing to do with the authentication on the unix-system.

To create a user or change the password:

% /it/sw/gnu/sbin/cvsd-passwd /it/cvs/repository username

To remove a user:

% /it/sw/gnu/sbin/cvsd-passwd /it/cvs/repository -username

If you want, the systemadministrators can do this for you.


It is also possible to give some users read-only access (e.g. an anonymous user) and to give others read-write access. If you handle the users yourself simply ask the systemadministrators to create a file /it/cvs/repository/CVSROOT/writers. Put all users who should have write access to the repository in the file, all other users will have read-only access.

Mirror an existing repository to give anonymous access

It is also possible to mirror a repository to give anonymous users readonly access.
It is however not possible giva access to mirrored repositories with write-access, the repository should instead be moved to the cvs-server.

Accessing the repository

This is the CVSROOT

Please note that the communication with the CVS-server is normally unencrypted. We have installed a ssl-enabled server on port 2405.

Encrypted connection using ccvssh

The recommended way to use encrypted CVS-access is to install the ccvssh tool.
ccvssh is used instead of rsh/ssh by setting the CVS_RSH environment variable. When you use ccvssh you must also specify :ext: instead of :pserver:.


% export CVSROOT=""
% export CVS_RSH=ccvssh
Login with
% ccvssh login
Use cvs as usual.
Logout with
% ccvssh logout

Note ! ccvssh 0.9.1 should probably be patched with this file.

Encrypted connection using stunnel

The main advantage with stunnel is that most linux-distribution and cygwin has stunnel preinstalled (or available as a ready-made package. ccvssh usually has to be manually installed.

The example uses stunnel 3.x, version 4 is more complex to setup.
It should also be noted that this solution is only suitable on singel-user machines, on multi-user machines care has to be taken to make sure the port (2401) is not already in use.

1. Start the encrypted tunnel between your machine and

   % /usr/sbin/stunnel -c -r -d localhost:2401

2. Specify the local machine as cvs-server

   % export CVSROOT=":pserver:username@localhost:2401/repository"

3. Use cvs as usual.

   % cvs login

If you do want to use stunnel 4.x, these are some options for your stunnel.conf.

   client  = yes
   service = pserver
   socket  = r:TCP_NODELAY=1
   socket  = r:SO_LINGER=1:60
   pid     =
   foreground = yes

   accept  = 2401
   connect =

Updated  2016-01-29 10:13:06 by Astrid Raidl.