CVS-Server
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.
SVN-Server
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.
- Name of the repository
- If you want to be able to create/remove users yourself
- If you wish to give some users read-only access
- 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 cvs.srv.it.uu.se.
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.
Read/Write-access
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
- :pserver:username@cvs.srv.it.uu.se:/repository
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:.
Example:
- % export CVSROOT=":ext:username@cvs.srv.it.uu.se:/repository"
- % 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 cvs.srv.it.uu.se
% /usr/sbin/stunnel -c -r cvs.srv.it.uu.se:2405 -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 [pserver] accept = 2401 connect = cvs.srv.it.uu.se:2405
Links:
- CVS homepage
- Eclipse cvs-ssl plugin
- WinCVS a Windows-client.
- TortoiseCVS a Windows-client.
- CVSNT a Windows-client and -server.
- LinCVS a GUI-client for Linux/Unix/MacOS X.
- jCVS a GUI-client written in Java.
- Smart CVS a GUI-client written in Java.