oucvs.txt June 26, 1998 jms This document on the web at http://oua4.nhn.ou.edu/doc/oucvs.txt. Fermilab product cvs v1.9 has been installed and setup on oua4. Cvs is a code management system in use by D0, ATLAS, CLEO, etc. This free software (GNU GPL) is used in the commercial and non-commercial worlds. It is built on top of the Unix RCS program and provides a powerful and flexible framework for code management. Cvs provides for restrictive or non-restrictive administration. Without prior experience with this product setting up restrictive administration and policies may be premature. Adapting as experience grows seems wise. As a caveat, it is possible to screw-up the code repository severely by unwise use of administrative commands. Documentation for cvs is available. There is a long man page that is useful for reference. The cvs manual is available using the info feature of emacs. When in emacs type control-h i to get to the info screen, click on cvs, and hit enter. This apparently is the most definitive documentation available. It explains philosophy, usage, examples, and command reference. There is an info hyperlinked index. The info pages are available in postscript form in the file: /usr/local/doc/cvs.ps I suggest printing it out and binding it, about 120 pages. There is no index. The default code repository for D0@OU is designated by the CVSROOT environment variable. This variable is set to /home2/oua4/cvsroot in the d0 login/initialization scripts. It may be over-ridden in a variety of ways (see the docs). I propose that all D0 code projects that use cvs place the code directories in the repository as subdirectories of $CVSROOT/d0. As an example, the python monte carlo submission package, mcd0it, has been placed in the cvs repository in the directory $CVSROOT/d0/mcd0it. The contents of this directory has been defined in cvs as constituting the module mcd0it. Defining modules is done via editing the administrative cvs file modules (see the docs). To implement cvs for D0@OU each member of OU/LU on D0 with accounts on oua4 has been made a member of the cvs group. The cvs repository is owned by the group cvs and the group cvs has write privilage in the cvs repository. More complicated group structure can be implemented if necessary to restrict access to various areas in the repository. Open-ness is the key at this point. The administrative commands that may break cvs if improperly used are at present also unrestricted, Anyone in the cvs group may give them. This can be restricted so that only authorized persons may use those commands. At present there are no restrictions. The everyday user has no need to deal with administrative commands. Cvs allows for access to the repository remotely using the rsh protocol (see docs). Access to a remote repository (on xochi.lunet.edu) from oua4 has been demonstrated, and access remotely (from xochi.lunet.edu) to the oua4 repository has also been demonstrated. This feature should allow access to the FNAL D0 repository when authorization is obtained. Summarizing the main points about cvs on oua4 for d0: default CVSROOT is /home2/oua4/cvsroot. cvs doc in emacs info format. cvs doc in postscript format at /usr/local/doc/cvs.ps. place d0 code as subdirectories of $CVSROOT/d0. cvs usage is restricted to members of d0 with accounts on oua4, presently snow, gut, strauss, grk, smith, steinbru.