Personal tools
You are here: Home / Library / Tools / CVS

Concurrent Version System

Concurrent Version System (CVS) is used to maintain most of the codes developed at CATS. It is going to be replaced with Git version control.

To point CVS at the main repository, set in C shell:

setenv CVSROOT :pserver:cats@cvs.cats.rwth-aachen.de:/usr/local/cvs

or Bourne shell:

export CVSROOT=:pserver:cats@cvs.cats.rwth-aachen.de:/usr/local/cvs

First, one must log in to the CVS server (inquire about password):

cvs login

The password will be stored in a .cvspass file in the home directory, which should be not readable by anybody else. One can then check out modules in read-only mode with:

cvs checkout <modulename>

Periodically, one should check for updates in the checked-out module directory:

cd <modulename>
cvs update

Links

Getting started:

Front ends:

Utilities:

More reading:

Alternatives:

This list of links has been adapted from the October 2000 issue of MacTech .

Advanced

If you are ready to create and maintain your own repository, this is how one creates a new module. For the sake of example, let's assume you are working on breathing a new life into the ancient computer game of Daleks. The new module might be then called 'daleks':

cd daleks
cvs import -m "Initial import" daleks CATS INITIAL
cd ..
mv daleks daleks.orig
cvs checkout daleks

After veryfing that all files are successfully checked out, you may want to remove the non-CVS daleks.orig directory. The CATS is a vendor tag and INITIAL is the symbolic tag for the initial revision; neither matters very much.

To get an older revision, say 2.0, of a file, say update.F, without affecting the head revision at all, do the following:

cvs update -p -r 2.0 update.F

Access Control Lists

To better control the access to separate CVS modules, we used to use SGI ACL mechanism. To add write-access for user joe to module daleks, go to /usr/local/cvs and run:

chacl ‘u::rwx,g::r-x,o::---,u:joe:rwx,m::rwx’ daleks

Then make sure that the module lock directory, e.g. in /usr/local/cvs/CVSROOT/lock/daleks, is owned by group tafsm. ACL's can be viewed with SGI ls -D option. Now that the repository is on Mac OS, only rough group-based access control is possible, while we wait for ACL support in upcoming 10.4 Tiger release.

Obsolete

In order to use the obsolete MEMS repository remotely, one had to make sure that the CVS executable ~behr/bin/sun4/cvs on mems appears in one's command search path before the default CVS in /usr/local/bin/cvs. The default one was too old; perhaps it was already updated.

To point CVS at the main repository, set in C shell:

setenv CVSROOT mems.rice.edu:/home/behr/src/master
setenv CVS_RSH ssh

or Bourne shell:

export CVSROOT=mems.rice.edu:/home/behr/src/master
export CVS_RSH=ssh

If one had an account on mems.rice.edu, and one belonged to group tafsm, one was able to check out modules in read-only mode.

CVS on CRAY

Compiling CVS on the CRAY T3E is not easy, because of lack of support for 4-byte integers on the CRAY. This is the summary of changes required to compile at least the client:

FileChanges
lib/md5.h INT64 variant added
lib/md5.c INT64 variant added
lib/regex.h removed 2 lines
lib/getdate.c allocamalloc
src/Makefile removed -ldir and -y -g ?
src/client.c hostname is char * not const char *
src/import.c unsigned char bufchar buf
len(off_t) len
src/login.c remove getpass

These notes are pretty rough; it has been a long time since these modifications were actually implemented. The changes were applied to CVS 1.8.1 distribution.

« May 2013 »
May
MoTuWeThFrSaSu
12345
6789101112
13141516171819
20212223242526
2728293031