Informatik CVS Repository

Introduction

Informatik now has a CVS server. This is potentially useful for Informatikers who want to

The CVS server has been set up for the UniForM project on an old machine which nobody wants. But hopefully other Informatikers will find it useful. At the moment this server is still experimental and is running on an old machine without much disk space, so do not be surprised if some details change.

If you have further questions, please call me at

   0421 218 64228

or e-mail me.

Read-Only Access

Everyone on the Internet has read access, by default, to the contents of the CVS server. However project leaders (see the Projects section) can ask for a project to be made unreadable to anyone without write access to that project.

To use this on a Unix system, first set the environment variable CVSROOT to

   :pserver:cvsread@cvs-agbkb.informatik.uni-bremen.de:/repository

For example, if your shell is sh or bash you can do this with

   CVSROOT=:pserver:cvsread@cvs-agbkb.informatik.uni-bremen.de:/repository
   export CVSROOT

and if your shell is csh, you can instead use

   setenv CVSROOT :pserver:cvsread@cvs-agbkb.informatik.uni-bremen.de:/repository

Once the CVSROOT environment variable is set, type

   cvs login

You should be prompted for a password; type "cvsread".

Assuming everything works, you can now download things from the repository. For example, you can download uni with the command

   cvs checkout -P uni

and update your copy by (in the same directory) typing

   cvs update -Pd uni

There are many other CVS commands. CVS is documented on its info page; try typing

   info cvs

for more details.

Write Access

If you want write access, you need to apply to me, Mattias Werner. The CVS server was originally intended for the UniForM project; however I hope it will be useful to other people in the Informatik Department at Bremen. But first read the rest of this HTML page!!!

Projects

The files on the CVS server are divided into projects. When you obtain write access it will be for a particular project. It is possible to have write access to more than one project, but only by having more than one account.

Each project has a project leader. You will need permission from the project leader to get write access to that project.

It is no problem starting a new project. Let me know if you want to do this. Also tell me if you want

Security and Reliability

You should not trust the CVS server not to lose or corrupt your data. There are two reasons for this.

Firstly, CVS is not guaranteed to be secure. Indeed all passwords and data are (currently) transmitted in the clear, and for all I know someone will discover a buffer-overflow exploit tomorrow which one of our brighter students will use to completely crash the system. For this reason, please do not trust the CVS server too much. It would for example be dangerous to trust code downloaded from the CVS server without some form of checking, since a hacker who hacked the server would then be able to hack you.

Secondly, the CVS server itself is running on an ancient computer with an ancient hard disk. We have already had one major disk crash on this machine. Fortunately there is a script which runs every night which backs up the repository, and this script worked when we did have a major crash. But please don't bet everything on it.

Passwords

Before I can give you write access to the CVS server, I will need you to generate an encrypted password, in the standard Unix format. To do this, you can use the program htpasswd (or sometimes called htpasswd2) or download this C program, compile it, and run it. (You may need, for example, -lcrypt on the command line to get it to link, but try it first without.) The program only checks that the password has a reasonable number of characters and is not all ASCII letters. So of course you are expected to make sure it is not a name, date, dictionary word, or otherwise guessable.

Similarly you should take reasonable care to prevent other people seeing your password, just as for your password on Informatik's systems. Be aware that CVS will probably (on Unix anyway) store your password in your home directory in a .cvspass file. This is alright, but you should be careful that other people don't see this file. (CVS should set it up so that only you and the system administrators can read it.)

There is no way you can change your own CVS password by yourself. Whenever you want to change it or disable your account, please let me know (with the new encrypted password, if possible) and I'll do it immediately. (To change the password rather than disable it, I will of course need some kind of identification; if you can please come and see me.) In particular, you should of course do this if you are worried that someone else knows your password.

Binary Files

CVS is not really suitable for binary files, and in any case binary files can get quite large, so I'm not terribly in favour of them. But if you must add binary files to the repository, please use the -kb option to the CVS add command when you add them. This will make CVS cope slightly better with them; in particular your files will not be corrupted when downloaded to Windows systems! (CVS tries to be clever with end-of-line characters for files that aren't binary.)