Quick Guide to CVS
NOTE: The GEOS-Chem adjoint now uses the Git source code management system instead of CVS. We shall preserve this information for reference.
We recommend first taking a look at CVS manual to get a general feel for how this tools works (e.g., http://cvsbook.red-bean.com/cvsbook.html).
Below are some command commands you may use for developing code and checking the status of code updates.
Obtain the latest code:
cvs checkout gcadj_std
Generate a list (modified_files.txt) of all the files in your local copy that differ from the current repository code:
cvs -q status | grep 'Status' | grep -v 'Up-to-date' > modified_files.txt
Determine the difference between your local copy of a file and the version that you originally checked out (i.e., see what you changed):
cvs diff foo_mod.f
Note: arguments such as a filename are optional. Without listing a specific file, cvs will run the command on all files in the current directory.
Determine the difference between your local copy of the code the current version in the repository (i.e., see both what you changed, and what has changed in the repository):
cvs diff -D "now" foo_mod.f
Merge your local file with the current repository version
cvs update foo_mod.f
Obtain a fresh copy of a file in the repository (without merging)
rm foo_mod.f cvs update foo_mod.f
Difference between the local repository and the tagged version “TAGNAME”
cvs diff -r TAGNAME (< file name > for specific file)
Difference between the two tagged versions “TAGNAME1” and “TAGNAME2” in the repository (shows modified files only):
cvs diff -N -c -r TAGNAME2 -r TAGNAME2 | grep "Index:" > output.txt
Please do not use the commit command, which is restricted to the GCadj support team (Daven Henze and Nicolas Bousserez).