E852 Documentation: Software: CVS
E852 Code management System
The E852 Source code is managed by CVS.
The CVS repository is physically located on
lemond.phy.bnl.gov:/usr/people/e852/source/CVS
I am using CVS Version 1.10 (see "cvs --version").
To access the E852 Repository, set CVSROOT would normally be set to:
/home/lemond/e852/source/CVS
If you do not know what CVSROOT is, keep reading.
To access the E852 CVS Repository from outside of BNL, you need to:
a) being able to "ssh" to any BNL computer that can access
/home/lemond/e852/source/CVS. Recommended BNL computers are
physgi00.phy.bnl.gov and a2.phy.bnl.gov.
Use of lemond.phy.bnl.gov is discouraged.
b) set CVS_RSH to "ssh"
c) set CVSROOT to "physgi00.phy.bnl.gov:/home/lemond/e852/source/CVS" or
"a2.phy.bnl.gov:/home/lemond/e852/source/CVS".
d) that done, the normal CVS commands (cvs checkout, cvs update,
cvs commit) should work.
Small CVS tutorial:
1. (no longer available?) Nathan Stone of STAR wrote a nice "advanced" tutorial at
http://www.rhic.bnl.gov/STAR/html/comp_l/onl/CVSTutorial.html
2. The CVSROOT environment variable is used by the CVS
commands to find the CVS repositiry. Instead of setting CVSROOT
you can specify the repository on the CVS command line:
"cvs -d a2.phy.bnl.gov:/home/lemond/e852/source/CVS update"
3. How CVS is different from SCCS
- there is no equivalent of "sccs edit" and "sccs delget".
You cannot reserve files while you edit them. Instead
you checkout your own private copy of the files (with "cvs checkout"
or "cvs update"), edit your local copies and then "commit" them
to the repository (with "cvs commit"). If two people edit
the same file at the same time and then try to commit their
changes, the first person's commit will succeed and the second's
will fail until he does "cvs update" to merge the first
person's changes into his local copy. Only then the second
person can commit his changes.
4. Most useful CVS commands:
- cvs --help
cvs --help-commands
list CVS command line switches and available commands.
- man cvs
- cvs checkout (module name)
will extract all the files for the given module from CVS.
You use this command the first time you access CVS. Afterwards
you should use "cvs update"
- cvs -n update
will compare your local copies of the files to the repository
and report any changes (local copy changed, copy in repository
changed, etc...).
- cvs update
will update your local copies of the files with the changes
in the repository. If files in repository have changed,
these changes will be merged into your local copies.
- cvs commit
puts your local changes back into CVS.
- cvs annotate (filename)
similar to "sccs print": print each line of the given file,
showing when that line was last modified.
5. What CVS modules exist?
To get a list of availble CVS modules, checkout the module
"CVSROOT" and look in the file CVSROOT/modules.
6. How to add a module?
Checkout, edit and commit the file "CVSROOT/modules". See
instructions in the file on how to edit it. Then use
"cvs import" to populate the new module with files. Make
sure you read the "cvs import" instruction because this
command is very quirky. Make sure you run "cvs import"
in the directory that contains the files (and subdirectories)
you intend to import.
end file
updated: KO 2000-Dec-12
original: KO 1998-July-25