next up previous contents
Next: 5 Coding Standard Up: ice_refdoc Previous: 3.3 Restart Fields   Contents

4 Code Management under CVS

CSIM uses CVS for revision control. CVS is a tool that documents the history of source code changes and maintains this history on a source tree. It documents each change with a time stamp and the user name of the person who made it. The user making the changes adds some text describing the changes. A tag is created, which gives a label to the collection of revisions.

Tags on the CVS main trunk, the main line of development for CSIM, are of the form csim#_#_#, where # represents an integer. Modifications to the first number are for major model versions that usually coincide with CCSM releases. Increments are made to the middle number when model physics are significantly modified or added. These versions are typically not publically released. Changes to the last number represent incremental changes to the model, such as bug fixes or cosmetic changes.

Development work that is experimental or requires major code changes should be done on a CVS branch, a line of development separate from the main trunk. Branches are used so that the changes do not appear on the main trunk until they are thoroughly tested. CVS branch names are of the form csim#_#_#_brnch_desc where the first three numbers denote the tag on the main trunk where the branch was created. The string of characters at the end of the tag name gives the purpose of the branch. For example, csim4_8_16_brnch_bugfix was rooted at version csim4_8_16 on the main trunk, and is a branch to make a bug fix. Tags created along the branch should have the form csim#_#_#_brnchT_desc#. This is basically the branch name with a 'T' to differentiate the tag name from the branch name, and a number at the end to denote where along the branch the tag was made.


next up previous contents
Next: 5 Coding Standard Up: ice_refdoc Previous: 3.3 Restart Fields   Contents
csm@ucar.edu