Pan-STARRS CVS Guide

The Pan-STARS CVS main repository can now be accessed if you have an account on the Pan-STARRS NIS domain. This document provides directions for checking out portions of the Pan-STARRS code. An intro to CVS can be found here.

Basic Information

To access the Pan-STARRS CVS tree, set these environment variables:

CVS_RSH = ssh
CVSROOT = (username)@cvs.pan-starrs.ifa.hawaii.edu:/cvsroot/pan-starrs

You can also browse the CVS tree with View CVS

Background

CVS is a tool for tracking changes in source code, documents, or other (usually text) files. A CVS repository is defined which contains all of the files to be tracked, stored in a format that maintains all of the change history. The user interacts with CVS by checking out some portion of the software into their own local copy. The user may then change files within the local copy as needed, and occasionally publish their changes to the CVS repository or download any changes in the repository into their local version.

Repository Organization

The Pan-STARRS CVS repository currently has the following directory structure:

  • CVSROOT
  • datasys
    • IP3
      • doc
      • phase2
      • pslib
      • utils
  • project
    • emacs
    • latex
    • mail
  • www

The top-level entries in the repository represent the Pan-STARRS subsystems, with lower-level directories representing the natural subdivisions of the subsystems.

Note the presence of IPP and IP3. The IPP is unique within Pan-STARRS in having a two-stage development effort: prototype code is being generated at the IfA for the IPP, while MHPCC will be delivering the operational version of the software. The IfA contribution is placed in IP3 (IPP Prototype), while the MHPCC CVS repository directories are mirrored to IPP (read-only). Also note that the CVSROOT directory is only used for CVS administration.

Modules

module name repository dir checkout dir
CVSROOT CVSROOT CVSROOT
project project project
latex project/latex latex
datasys datasys datasys
IP3 datasys/IP3 IP3
IP3-doc datasys/IP3/doc IPP
IP3-pslibdatasys/IP3/pslib pslib
IP3-utilsdatasys/IP3/utils utils
IPP datasys/IPP IPP
MOPS datasys/MOPS MOPS
www www www

The organization of the directory structure in the CVS repository need not map exactly to the directory structure of the checked-out copies. This is because the user actually checks out 'modules', which represent specific CVS repository directories or collections of associated directories. In the Pan-STARRS CVS repository, we have specified modules to allow users to check out the lower-level systems as well as logical groups. Here is a list of the currently defined modules and their meaning:

With the modules, a user who prefers to have the document and source-code directories in different trees may do so by checking out the source code entries (eg, IP3-pslib, IP3-utils) in one directory and the documents (eg, IP3-doc) in another locations. It is possible to restrict write access to a given module to a subset of the possible users.

Usage

To make extensive use of CVS, you are advised to read the CVS manual. However, it is easy to use CVS to download the current version of documents, sample code, etc.

First, set the environment variable CVS_RSH to the value:

CVS_RSH = ssh

Next, set the environment variable CVSROOT to the value:

CVSROOT = (username)@cvs.pan-starrs.ifa.hawaii.edu:/cvsroot/pan-starrs

Where 'username' is the account name you would use to login to pan-starrs or poiserver0.

When initially downloading code from the Pan-STARRS CVS repository, you can use the following command:

cvs co [module]

where the entry [module] should be one of the module names listed above. The result will be a new directory at your current location with the name given by the last column of the table above. For example, if you want to check out the code for the prototype IPP library, you can issue the command:

cvs co IPP-pslib

And you will receive a directory called pslib.

At any point, if you want to update your version from the repository, you can go to the original directory level (which contains the module) and issue the command:

cvs update -dP [module]

Note that the -dP flags tell CVS to "build" and "prune" directories which have been added to or removed from the repository.

or, if you are in the directory where you checked out the module, you can just type

cvs update -dP

and it will update everything at or below your current level.

Example

As an example of the checkout process, we can examine the steps to check out the Pan-STARRS latex style files and templates. The user may choose to check out the entire project module, which contains the latex components as well as other useful examples (ie, emacs coding style template). Alternatively, the user may simply checkout the latex module:

cvs co latex

This will create a local directory latex which contains:

  • latex
    • inputs
      • panstarrs.cls
      • panstarrs.def
      • psreport.def
    • templates
      • panstarrs_template.tex

If there are changes, the user may use cvs to download the latest version by running the following in the latex directory:

cvs update -dP

To use the style-files, there are various options available. The user needs to get the *.cls, *.def files into their TEXINPUTS path. If you have a personal TEXINPUTS directory in your path, one option is to make a link from these files into that directory. Another is to copy the style files to the directory where latex will be used. A third option is to copy the files to be latex'ed to the latex directory.