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:
| File | Changes |
lib/md5.h |
INT64 variant added |
lib/md5.c |
INT64 variant added |
lib/regex.h |
removed 2 lines |
lib/getdate.c |
alloca → malloc |
src/Makefile |
removed -ldir and -y -g ? |
src/client.c |
hostname is char * not const char * |
src/import.c |
unsigned char buf → char 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.




