First create the directory to hold the repository, eg, cd public mkdir cvsroot Next give John and Peter write and read access. Write access is needed even just to checkout the files. fs setacl -dir cvsroot -acl jchill rlidwka fs setacl -dir cvsroot -acl pwp rlidwka To use cvs locally, set the repository environment variable (eg, interactively or in .cshrc) setenv CVSROOT /afs/cern.ch/user/g/gmoor/public/cvsroot (alternatively, specify the repository with the -d option to cvs at appropriate command lines. Because the repository is local we don't need to specify an access method) Now create the base repository cvs init Now, we have already created a local working copy of the source file tree from which we want to import initially the first generation of files into cvs. CVS works by assuming the current working directory is the one which needs to be synchronise with the repository for any given command, so we now need to cd to the local working copy, and then issue the import command. cd /afs/cern.ch/user/g/gmoor/public/sctdaq cvs import -m "Original sources imported, post Aug99 testbeam" evaluation/sctdaq sct start Note I have created an evaluation sub-repository; when all co-authors are happy with a version, we should also import into a production version. This evaluation copy can now be checked out. Note: to use CVS we must always poistion ourselves in an appropriate workspace before issuing cvs commands. In this case, we should move to a directory other than the one from which we imported the sources, checkout the sources from the repository, then do a diff on the files to check all was well. We can then delete (or release) both working copies. Eg, cd .. mv sctdaq sctdaq.original cvs checkout evaluation/sctdaq (creates a new working directory evaluation/sctdaq) diff -r sctdaq.original evaluation/sctdaq rm -rf sctdaq.original Note: you can checkout the files locally as above on a machine which gives you both read and write access to the files on AFS, or remotely using the client/server mode of CVS. This is indicated by putting an access method other than :local: in front of the CVSROOT variable. By default, with method :server:, CVS tries to use an inbuilt version of rsh. Rsh is not permitted to run on atlas.wgs (and presumably other centrally support machines at CERN) so one must use ssh. This is done by telling CVS to use a substitute remote shell, by using method :ext: and by setting the CVS_RSH variable: setenv CVSROOT gmoor@atlas.cern.ch:/afs/cern.ch/user/g/gmoor/public/cvsroot setenv CVS_RSH ssh where ssh is in my standard path on my local host. With these environment variables I can checkout, update and commit from Melbourne Unix server to atlas. To use CVS from Windows or NT, you need the appropriate versions of CVS and the secure shell, SSH. The SSH implementation must be a transparent one, not an interactive one. I have found that the one downloadable from: www.bmrc.berkeley.edu/people/chaffee/winnutil.html does the job.