Projects Members Contact Us Back to HiPerSoft Home Page
Projects Visit Rice University

CVS and SVN Resources

ViewVC | How Rice CVS Works | Anonymous CVS Access |
Repositories at Rice | CVS Information | Basic CVS Commands

How Rice SVN Works | Download SVN patched code

CVS (concurrent versioning system) provides the means for multiple developers to work together on the same files, merging changes automatically and maintaining revisions as the source is updated. It is important that the developers have a firm grasp of CVS commands and procedures before beginning the project. A very basic description of the CVS commands are below. This is not by any means a complete listing! For more indepth information, please refer to the links that are provided.

Top

How this CVS Repository Works

There are some important points that should be mentioned and well understood by each developer who takes part in using this CVS archive.

  1. For our purposes, CVS will behave as a client / server environment.
  2. Anonymous (read only) access is now available. To obtain read/write access to the CVS repository, users will have to request this level of access.
  3. SSH version 2 is required. We are specifically using OpenSSH which can be downloaded from the OpenSSH website. If you are using the ssh.com commercial version, we have identified an incompatibility with the ssh keys that are generated - there is a workaround however - please contact Sarah Gonzales for details.
  4. Developers will create a copy of the CVS repository on their LOCAL machine by checking out the CVS repository.
  5. After the developer has completed the changes, the developer will commit the appropriate files back into the CVS repository (this assumes that the developer has write access to the CVS repository).
Top

Anonymous Access for CVS

  1. We are now providing anonymous (read only) access via ssh. A script is required - download it here. Note that due to a bug in Internet Explorer, copying and pasting this script from the browser window will generate inappropriate line breaks. You'll either have to remove the line breaks manually or you can simply right click on the link above and select => download link to disk.
  2. SSH version 2 is also required. If you do not have the latest version of SSH, please download it at the OpenSSH web site or check with your system administrator for details.
  3. Once you have the script (filename is assumed to be hipersoft-anonssh as in the example)

    put it in a convenient place, preferably in your home directory - say....
    ~/bin/hipersoft-anonssh
    make it executable - chmod 700

    This file contains a private ssh key that matches a key on our CVS server. Once the script is setup properly, you can simply checkout the CVS repository without the need for a login or password. All access to the repository will be encrypted via ssh (version 2 is required).

  4. Set the environment variables as outlined below.
    The following instructions are for tsch. Adjust this for whatever your preferred shell is.

    setenv CVS_RSH ~/bin/hipersoft-anonssh
    setenv CVSROOT :ext:anoncvs@128.42.2.152:/Volumes/cvsrep/developer

    In bash or sh

    export CVS_RSH=~/bin/hipersoft-anonssh
    export CVSROOT=:ext:anoncvs@128.42.2.152:/Volumes/cvsrep/developer

    You should be ready to go.

  5. Run the checkout command - Below you'll find a listing of repositories hosted at Rice University. Substitute [ProjectName] as appropriate from the list below. NOTE: repository names are case sensitive.

    cvs co [ProjectName - see below]

    That's it - no passwords are required since you have obtained the private key. Let me know if there are any issues or questions.
Top

Repositories currently hosted at Rice University

NOTE: repository names are case sensitive.

  • Open64
    => cvs co Open64

  • HPCToolkit has multiple modules available for checkout.
    1. HPCToolkit_all_source checks out a complete copy of the HPCToolkit source, includes the three external libraries (OpenAnalysis and GNU Binutils, and Xerces-C++) that are required to compile the source from scratch. This does NOT include the HPCToolkit tests suite.

      => cvs co HPCToolkit_all_source

    2. HPCToolkit_complete checks out a complete copy of the HPCToolkit source, includes the three external libraries (OpenAnalysis and GNU Binutils, and Xerces-C++) that are required to compile the source from scratch, and also provides the HPCToolkit test suite. These tests consume a large amount of disk space (130 Mb base, plus an additional 85 Mb to run).
      Please allow ample time to download.

      => cvs co HPCToolkit_complete

    3. Individual HPCToolkit packages

      HPCToolkit by itself contains just the HPCToolkit source.

      => cvs co HPCToolkit

      HPCToolkit_tests checks out only the HPCToolkit test suite. These tests consume a large amount of disk space (130 Mb base, plus an additional 85 Mb to run) and therefore now live in their own repository. Please allow ample time to download.

      => cvs co HPCToolkit_tests

      OpenAnalysis - users can check this external library out individually if necessary.

      => cvs co OpenAnalysis

      binutils - (GNU binutils) users can check this external library out individually if necessary.

      => cvs co binutils

      xercesc - (Xerces-C++) users can check this external library out individually if necessary.

      => cvs co xercesc

Top

Vital CVS Information

  1. CVS does NOT provide actual file locking. What this means potentially, is that multiple developers can check out the same file at the same time and initiate changes. File changes are commited to the CVS repository on a first come / first serve basis. The first developer to commit their modifications, their version becomes the most current revision within the CVS repository. Other developers must then either
    • merge their changes with the current file
    • resolve conflicts if they have edited the same section of the source
    • or revert back to previous versions of the source (this requires administrative access to the CVS repository and is not accessible to all users)
  2. It is important for this reason that you check the files back into the CVS repository in a timely fashion.
  3. Any files that are added to the repository using the cvs add command, but not committed will end up in a directory called the "Attic".
  4. It will also be neccesary to designate an individual to be the mediator / administrator should / when conflicts occur.
  5. It is highly recommended that after a developer has committed changes to the CVS repository that local copies of the CVS repository are REMOVED. This helps eliminate any confusion for future revisions.
  6. As the user is making revisions, CVS commands should be implemented from within the working CVS directory on the user's LOCAL machine.
Top

Basic CVS Commands

Note the commands below represent only a small subset of the broad range of CVS commands. The commands listed are typically, the most frequently used. Please refer to the CVS help or the CVS manual for more detailed information.

  • cvs checkout RepositoryName
    To acquire a local copy of the files to work with. All work on files controlled by CVS begin with a cvs checkout command. This command generates a complete directory for the files that are checked out. There are many other arguments that can be implemented during execution of the check out command. See the CVS help for details.
  • cvs add [filename]
    Provides a means for the developer to add a newly created file from the LOCAL computer to the current CVS repository.
  • cvs commit RepositoryName
    Any changes that occur on the LOCAL computer must be committed to the CVS repository to make them accessible to other users.
  • cvs update
    • Displays the status of your working files
    • Merges changes made by others to the branch you are working on locally
  • cvs diff [filename]
    Provides a breakdown of the differences between multiple revisions of a file within the CVS repository.
  • cvs log [filename]
    Provides a complete listing of the document revision numbers as well as the individuals who modified each revision.
  • cvs help
    Provides a listing of CVS commands
  • cvs -H [CommandName]
    Provides more detailed help and arguments for a specific cvs command.

Top


How Rice SVN Works (coming soon)

Download patched SVN Code