In addition to the other methods, the OpenSees source code is available via CVS. CVS (Concurrent Versions System) is a tool used by many software developers to manage changes within their source code tree. CVS provides the means to store not only the current version of a piece of source code, but a record of all changes (and who made those changes) that have occurred to that source code. Use of CVS is particularly common on projects with multiple developers, since CVS ensures changes made by one developer are not accidentally removed when another developer posts their changes to the source tree.

Information about CVS can be found at CVS's website . To learn more read the manual.

Anyone can check out the code via anonymous CVS access, but only certain people have the ability to check in. Those people, basically, are people who I trust not mess up the code. Read our document on hacking OpenSees to find out how to get the ability to check in and how programmers without this ability can check in their code.



Anonymous CVS Access

This project can be checked out through anonymous (pserver) CVS with the following command (use the dos prompt if on a windows machine).

cvs -d :pserver:anonymous@opensees.berkeley.edu:/usr/local/cvs login

When prompted for a password for anonymous, type anonymous.


What follows are more in-depth instructions on two topics:

  • First, detailed platform-specific instructions on how to check out the source repository from scratch.
  • Second, assuming you have previously downloaded the source code from our FTP server, how to convert your existing source directory into one that can be used with our CVS server (meaning you will only need to download the files that have changed since the FTP archive was constructed, rather than downloading the whole thing again.)


cvs checkout


Here is how you do a cvs checkout from our server on various platforms.

Also note that CVS is slower than FTP, if you start from scratch.

So, please read this entire document, including the conversion section, before doing anything rash.

  • Unix:

    You can find the most recent version of CVS at CVS's website . You check out as follows. (Syntax is for csh; if you use sh, I'm sure you'll know what to do. If you don't, you've got bigger problems...)

    	% setenv CVS_RSH ssh 
    	% setenv CVSROOT :pserver:anonymous@opensees.berkeley.edu:/usr/local/cvs
    	% cvs login
           
    	(Logging in to anonymous@opensees.berkeley.edu)
    	CVS password: anonymous
    
    	% cvs -z3 checkout OpenSees
    	U ....
    	U ....  a lot of times .. MAYBE CHANGE THIS ALA MOZILLA
    
    	

    This automates a cvs checkout process that is prone to change.

    You only ever need to run cvs login once. It will remember your password in your $HOME/.cvspass file.

    The -z3 parameter is to cause the files (and diffs) to be compressed while in transit. This is almost always the right thing to do; so much so that you should probably just put cvs -z3 in your $HOME/.cvsrc file, to make it be the default on all CVS commands.

    (Note that -z9 offers a logarithmic improvement in compression at an exponential cost in CPU time. Therefore, we recommend -z3; that seems to be about optimal in most cases.)

  • Windows:

    The latest versions of the windows operating system come with the command line cvs program installed.

    If you don't have it for some reason, other than asking microsoft!, you can find a suitably recent version of CVS at CVShome.org's Download pages, pages

    In order to use cvs under Windows, you must have unpacked the source from the `tar' file, not from a `zip'. The zip file format does not store dates with enough accuracy for cvs, so updating source unpacked from a zip with cvs takes a really long time because the cvs client must send most files to the server to determine if they have changed.

    The checkout procedure is similar to that for Unix:

              
              C:\> set CVS_RSH=ssh 
              C:\> set CVSROOT=:pserver:anonymous@opensees.berkeley.edu:/usr/local/cvs  
              C:\> set HOME=C:
              C:\> cvs login
              (Logging in to anonymous@opensees.berkeley.edu)
              CVS password: anonymous
    
    	  C:\> cvs co OpenSees
    	  U ....
    	  U ....  a lot of times .. MAYBE CHANGE THIS ALA MOZILLA
              
              

    Some people have commented that this fails.

    If it fails on your machine with an error message to the effect that it failed to create/access a .cvspass file, go to your HOME directory (C: if you followed the instructions above) and create an empty file named .cvspass. Now try again.

    If it fails with a message about being unable to connect use the following command:

              
      C:\> cvs -d :pserver:anonymous@opensees.berkeley.edu:/usr/local/cvs co OpenSees
    	  

    You also need to have the HOME environment variable set to a sensible directory, or cvs will complain.

  • Macintosh:

    CVS comes with Max OS X, so if you are still looking for a reason to upgrade, here it is!

    You might also want to look at MacCVS .

    Other Mac CVS tools:
    There are a few different CVS options for MacOS listed on cyclic.com's Download pages, but I don't currently know which, if any, of these work with our cvs server. The beatings will continue until answers are found. Thank you for your patience.



converting a tarball to a working cvs sandbox


Chances are, you've already downloaded the source code from our FTP server. Even if you haven't, you might want to consider doing so: it's faster than checking out the whole tree over CVS.

Our source tarballs contain CVS info and so it is already set up to talk to our public server. All you need to do is this:

  • download a tarball;
  • unpack it;
  • run ``cvs -z3 checkout -PA OpenSees'' in the same directory you unpacked the tarball.
  • and before you check anything in, SO MOST OF YOU CAN IGNORE THIS FOR NOW, we have to change all the ROOT files in each CVS subdirectory in the project to ":pserver:YourName@opensees.berkeley.edu:/usr/local/cvs". We will provide a script to do this eventually.
  • BEWARE! Attempting to perform the above will clobber any local changes you have made, if you are using any CVS client previous to version 1.9. You have been warned.

That's it! This will cause the server to send the changes that have been made in the CVS repository since the time the tarball was created, bringing you up to date.