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