The project implementation groups will use the CVS version control system to track and coordinate the sources. Below are some notes about the things I found personally useful to organize contributors to a project. It is probably worthwile to read at least the most important part of the official documentation if you have never used CVS before.
The repository is at /afs/cs.cmu.edu/user/fp/courses/atp/CVS. Invoke CVS using the -d flag when you first check out your project code:
% cvs -d /afs/cs.cmu.edu/user/fp/courses/atp/CVS checkout colorThe checkout command will create a subdirectory color with the current state of the code. Once you have created the local copy, the -d argument is no longer necessary on other operations performed in that directory.
You need to be authenticated to the CS cell before you can check out or check in changes. See the CMU/CS help page on cross-realm authentication.
I have created groups fp:red, fp:green, and fp:blue in cell cs.cmu.edu and give appropriate access rights to the repository to these groups. To examine the current membership call
% pts members fp:color
Below are some common operations, for quick reference.
% cvs -d /afs/cs.cmu.edu/user/fp/courses/atp/CVS checkout colorwill create or update the subdirectory color with a copy of sources which must then be compiled. There is no locking, and the sources are read/write.
% cvs update -din the source directory or just the directory which you want to update. The -d flag ensures that you will see new directories, which would otherwise be ignored. If there is a conflict, you might have to edit the result by hand.
% cvs commit -m "brief comment"for all in the current directory and its subdirectories.
% cvs tag weekn
% cvs add fileYou can add several files at once, but a directory must be added before the file in it. The repository will see the changes at the next commit operation.
% cvs remove FILEThe repository will see the changes at the next commit operation. Directories cannot be deleted conveniently.
% cvs remove old % cvs add new
% cvs -n -q update -d (what has changed in repository) % cvs -n commit (what would happen on commit)
CMhas been added to the $CVSROOT/CVSROOT/cvsignore file. You may add .csvignore files to directories to avoid warnings about other generated files.