STAR   Computing Tutorials main page
Using CVS in STAR
Offline computing tutorial Maintained by T. Wenaus

STAR uses CVS, the Concurrent Version control System, to manage the STAR software repositories. Offline and online software are in separate repositories as follows:
STAR offline repository /afs/rhic/star/packages/repository
RHIC common software repository /afs/rhic/common/CVSREP
STAR online repository /star/onl/cvs/ROOT (visible from BNL machines only)
STAR used to use a script layer (the sl_* commands) over CVS; this is no longer used. CVS is used directly.

Check out this brief summary of the CVS commands most important to us.

Print out this very useful CVS reference card from Cyclic Software. Use landscape and 'fit to page' when you print it.

One should never ever go to, browse in, touch, edit, or otherwise interfere with a CVS repository itself. Use the web browser, do a CVS checkout of the software of interest, or browse the current reference copy (in $STAR_PATH/dev for the offline software).

Offline repository

Repository browser: this is a web-based browser that allows you to browse the entire offline and online CVS repository trees and access all files and their revision histories. You can also examine the differences between revisions. It also provides links to a history of recent commits and commits by user.

Cross-referenced source browser and searcher: Browse STAR and third party source code, with hyperlinked cross references and the ability to search for all usages of symbols, files, and general text

CVS browser: another one; slower. Rooted in pams/ at present so you can't examine the entire repository.

CVS commit log archive: an email list archive (for the STARCVS-L list) containing the commit logs for the entire offline repository

CVS commit log search: this is a search form for scanning CVS commit logs from any part of the repository over any time period, for all users or for a particular user.

Hierarchical, directory by directory responsibility for the contents of the offline CVS repository is given in the CVS responsibility list, the avail file at the top level of the repository (online has one too). In order for a person to have commit rights for a portion of the repository, they must be on this list at or above the level in the hierarchy at which they wish to commit.

Online repository

Consult the online computing web pages for information on the online repository.

Access control -- Karma!

The STAR offline CVS repository employs an access control mechanism that allows only authorized accounts to modify parts of the hierarchy. Authorization control is for commits only; everyone can check out any part of the repository.

If you get a message Insufficient karma (yes, it's a weird message) it's an indication you do not have write access to the area you're trying to commit to.

The access list is $CVSROOT/CVSROOT/avail. A line like

  avail 	|ullrich,wenaus |StRoot/StAnalysisMaker
means that ullrich and wenaus can write to any directory under StRoot/StAnalysisMaker.

Note that you will not be able to commit a brand new package to the repository (unless you have a lot of karma) because there'll be no entry giving you access to the area you're trying to create. You can create subdirectories under directories you have access to.

You should ask Lidia, Yuri or Torre when you need access changes or you need a new area to be created.

Other CVS information and resources