/[MITgcm]/mitgcm.org/front_content/using_cvs.xml
ViewVC logotype

Diff of /mitgcm.org/front_content/using_cvs.xml

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph | View Patch Patch

revision 1.2 by edhill, Thu Dec 4 16:20:41 2003 UTC revision 1.15 by jmc, Thu Jul 5 22:30:36 2012 UTC
# Line 14  Line 14 
14      <meta name="add_title" content="Using CVS" />      <meta name="add_title" content="Using CVS" />
15      <!-- Hinting for menu generation -->      <!-- Hinting for menu generation -->
16    
     <title>MITgcm: <!--ADDTITLE--></title>  
17  <style type="text/css">  <style type="text/css">
18   span.c2 {font-size: 110%}   span.c2 {font-size: 110%}
19   div.c1 {text-align: center}   div.c1 {text-align: center}
# Line 22  Line 21 
21    </head>    </head>
22    
23    <body>    <body>
24        
25      <center>      <center>
26        <h3>Obtaining the MITgcm Source using CVS</h3>        <h3>Obtaining the MITgcm Source using CVS</h3>
27      </center>      </center>
# Line 33  Line 32 
32        to use the CVS "pserver" mechanism.  This method only allows you to "check        to use the CVS "pserver" mechanism.  This method only allows you to "check
33        out" (or obtain a local copy) of the source.  It does not provide a        out" (or obtain a local copy) of the source.  It does not provide a
34        mechanism for "committing" or "checking in" changes (please see below).        mechanism for "committing" or "checking in" changes (please see below).
35        Using CVS pserver from the command line requires just a three        Using CVS pserver from the command line requires just a three commands.
36        commands:</p>        Using a Bourne, "bash", or "sh-compatible" shell they are:</p>
37        
38  <blockquote>  <pre>
39  Using a Bourne, "bash", or "sh-compatible" shell:    $ export CVSROOT=':pserver:cvsanon@mitgcm.org:/u/gcmpack'
40  <pre>    $ cvs login
41  $  export CVSROOT=':pserver:cvsanon@mitgcm.org:/u/gcmpack'      ( enter the CVS password: "cvsanon" )
42  $  cvs login    $ cvs co -P MITgcm
43     ( enter the CVS password: "cvsanon" )  </pre>
44  $  cvs co MITgcm MITgcm_contrib  
45  </pre><br />      <p>Using a "C", "csh", or "tcsh" shell the commands are:</p>
46    
47  Using a "C", "csh", or "tcsh" shell:  <pre>
48  <pre>    $ setenv CVSROOT ':pserver:cvsanon@mitgcm.org:/u/gcmpack'
49  $  setenv CVSROOT ':pserver:cvsanon@mitgcm.org:/u/gcmpack'    $ cvs login
50  $  cvs login      ( enter the CVS password: "cvsanon" )
51     ( enter the CVS password: "cvsanon" )    $ cvs co -P MITgcm
52  $  cvs co MITgcm MITgcm_contrib  </pre>
53    
54        <p>using the "-P" option to check-out ("<i>cvs co -P</i>") prevents
55        to download unnecessary empty directories.</p>
56    
57        <p>A large amount of additional (optional!) content is available
58        from the <i>MITgcm_contrib</i> directory; much of it is specific to certain
59        setups (eg. high-res setups, in-development material that is not yet part
60        of the "main" code, etc ...).
61        But rather than checking out the full content of MITgcm_contrib
62        ("<i>cvs co -P MITgcm_contrib</i>"), which takes a long time to download
63        (particularly from remote locations), we recommend to download only the
64        specific part of interest, e.g.: "<i>submesoscale</i>" directory,
65        which can be checked out using:</p>
66    
67    <pre>
68      $ cvs co -P MITgcm_contrib/submesoscale
69  </pre>  </pre>
 </blockquote>  
70    
71      <p>Note that you will only need to perform the "cvs login" once.  And for      <p>Note that you will only need to perform the "cvs login" once.  And for
72        convenience, you may want to add the CVSROOT variable to your shell's        convenience, you may want to add the CVSROOT variable to your shell's
# Line 63  $  cvs co MITgcm MITgcm_contrib Line 77  $  cvs co MITgcm MITgcm_contrib
77      <h4>Getting Parts of the Source "Tree"</h4>      <h4>Getting Parts of the Source "Tree"</h4>
78    
79      <p>The above commands demonstrate how to check out all of the MITgcm code      <p>The above commands demonstrate how to check out all of the MITgcm code
80        and the "contributed" (that is, unsupported by often useful) information        and the "contributed" (that is, unsupported but occasionally useful)
81        within the "MITgcm_contrib" directory.  In many cases, this is overkill        information within the "<i>MITgcm_contrib</i>" directory. In many cases,
82        and can result in long download times.  To reduce the volume of        this is overkill and can result in long download times.
83        information downloaded and thereby speedup the download times, one can        To reduce the volume of information downloaded and thereby speedup the
84        select one of the following pre-defined "aliases" that will provide a        download times, one can select one of the following pre-defined "aliases"
85        sub-set of the entire MITgcm source "tree":</p>        that will provide a sub-set of the entire MITgcm source "tree":</p>
86    
87      <table align="center" border="0" cellpadding="10" width="90%" summary="CVS      <table align="center" border="0" cellpadding="10" width="90%" summary="CVS
88        aliases">        aliases">
# Line 83  $  cvs co MITgcm MITgcm_contrib Line 97  $  cvs co MITgcm MITgcm_contrib
97        <tr bgcolor="#bbddff">        <tr bgcolor="#bbddff">
98          <td width="25%">MITgcm_verif_basic</td>          <td width="25%">MITgcm_verif_basic</td>
99          <td>Source code plus a small set of the verification examples          <td>Source code plus a small set of the verification examples
100            ("global_ocean.90x40x15", "aim.5l_cs", "hs94.128x64x5",            ("aim.5l_cs", "hs94.128x64x5", "ideal_2D_oce", "lab_sea",
101            "front_relax").</td>             "tutorial_baroclinic_gyre", "tutorial_global_oce_latlon"
102       </tr>             and "tutorial_plume_on_slope").</td>
103          </tr>
104          <tr bgcolor="#bbffdd">
105            <td width="25%">MITgcm_tutorials</td>
106            <td>Source code plus all of the tutorials examples.</td>
107          </tr>
108          <tr bgcolor="#bbddff">
109            <td width="25%">MITgcm_verif_all</td>
110            <td>Source code plus all of the verification examples.</td>
111          </tr>
112          <!--
113        <tr bgcolor="#bbffdd">        <tr bgcolor="#bbffdd">
114          <td width="25%">MITgcm_verif_atmos</td>          <td width="25%">MITgcm_verif_atmos</td>
115          <td>Source code plus all of the atmospheric examples.</td>          <td>Source code plus all of the atmospheric examples.</td>
# Line 94  $  cvs co MITgcm MITgcm_contrib Line 118  $  cvs co MITgcm MITgcm_contrib
118          <td width="25%">MITgcm_verif_ocean</td>          <td width="25%">MITgcm_verif_ocean</td>
119          <td>Source code plus all of the oceanic examples.</td>          <td>Source code plus all of the oceanic examples.</td>
120       </tr>       </tr>
       <tr bgcolor="#bbffdd">  
         <td width="25%">MITgcm_verif_all</td>  
         <td>Source code plus all of the verification examples.</td>  
       </tr>  
       <!--  
121        <tr bgcolor="#bbddff">        <tr bgcolor="#bbddff">
122          <td width="25%"></td>          <td width="25%"></td>
123          <td></td>          <td></td>
# Line 110  $  cvs co MITgcm MITgcm_contrib Line 129  $  cvs co MITgcm MITgcm_contrib
129        -->        -->
130      </table>      </table>
131    
132        <p>It is important to note that the CVS aliases above cannot be used in
133          conjunction with the CVS <i>-d DIRNAME</i> option.  However, the MITgcm
134          directories they create can be changed to a different name following the
135          check-out:</p>
136    <pre>
137      $ cvs co -P MITgcm_verif_basic
138      $ mv MITgcm MITgcm_verif_basic
139    </pre>
140    
141      <h4>Getting Specific Releases or "Checkpoints"</h4>      <h4>Getting Specific Releases or "Checkpoints"</h4>
142        
143      <p>As shown within the <a      <p>As shown within the
144        href="http://dev.mitgcm.org/cgi-bin/viewcvs.cgi/MITgcm/doc/tag-index"> CVS        <!-- <a href="http://mitgcm.org/cgi-bin/viewcvs.cgi/MITgcm/doc/tag-index">CVS Code Browser</a> -->
145        Code Browser</a>, the MITgcm code is continuously undergoing updates.  At        <a href="http://mitgcm.org/viewvc/MITgcm/MITgcm/doc/tag-index">CVS Code Browser</a>
146          , the MITgcm code is continuously undergoing updates.  At
147        points during the development (typically, after work has been done and the        points during the development (typically, after work has been done and the
148        source code has passed the <a href="testing/latest.html">verification        source code has passed the <a href="./testing.html">verification
149        tests</a>), a release or checkpoint "tag" is created.  These tags are a        tests</a>), a release or checkpoint "tag" is created.  These tags are a
150        convenient mechanism for referring to different times or points within the        convenient mechanism for referring to different times or points within the
151        development.  One can check out these versions using the "-r TAG_NAME" CVS        development.  One can check out these versions using the "-r TAG_NAME" CVS
152        option such as: </p>        option such as: </p>
153    
 <blockquote>  
154  <pre>  <pre>
155  $  cvs co -r release1_p5 MITgcm    $ cvs co -P -r release1_p5 MITgcm
156  $  cvs co -r checkpoint52a_post MITgcm    $ cvs co -P -r checkpoint52a_post MITgcm
157  </pre>  </pre>
 </blockquote>  
158    
159      <p>By default (that is, when no tag is specified), CVS will retrieve the      <p>By default (that is, when no tag is specified), CVS will retrieve the
160        latest version of all files.</p>        latest version of all files. To download an older version corresponding
161          to a specific time, e.g., May 1rst, 2008, at 5pm, one can use the "-D"
162          CVS option as follows: </p>
163    
164    <pre>
165      $ cvs co -P -D "2008-05-01 17:00" MITgcm
166    </pre>
167    
168      <h4>Show changes that YOU have made</h4>      <h4>Show changes that YOU have made</h4>
169    
# Line 140  $  cvs co -r checkpoint52a_post MITgcm Line 171  $  cvs co -r checkpoint52a_post MITgcm
171        that you yourself have made since obtaining the code.  From within        that you yourself have made since obtaining the code.  From within
172        your working directory:</p>        your working directory:</p>
173    
174  <blockquote>  <pre>
175  <pre>cvs diff</pre>    cvs diff
176  </blockquote>  </pre>
177    
178    
179      <p>will show the differences between your version and the version that you      <p>will show the differences between your version and the version that you
180        checked out. It acts recursively on all directories below your current        checked out. It acts recursively on all directories below your current
181        directory. You can limit the operation to just one file or directory by        directory. You can limit the operation to just one file or directory by
182        specifying those as arguments:</p>        specifying those as arguments:</p>
183    
184  <blockquote>  <pre>
185  <pre>cvs diff <i>file</i></pre>    cvs diff <i>file</i>
186  </blockquote>  </pre>
187    
188    
189      <h4>Show changes to the repository that you don't have</h4>      <h4>Show changes to the repository that you don't have</h4>
190    
191      <p>The source code evolves continuously and you should try to stay up to      <p>The source code evolves continuously and you should try to stay up to
192        date.  To see what needs to be updated:</p>        date.  To see what needs to be updated:</p>
193    
194  <blockquote>  <pre>
195  <pre>cvs -n update</pre>    cvs -n update
196  </blockquote>  </pre>
197    
198      <p>behaves just as "cvs update" but doesn't actually change anything. This      <p>behaves just as "cvs update" but doesn't actually change anything. This
199        is a useful way of summarizing the state of your code. The meaning of the        is a useful way of summarizing the state of your code. The meaning of the
# Line 171  $  cvs co -r checkpoint52a_post MITgcm Line 204  $  cvs co -r checkpoint52a_post MITgcm
204      <p>You can download and merge updates from the repository to bring you      <p>You can download and merge updates from the repository to bring you
205        working code up to date:</p>        working code up to date:</p>
206    
207  <blockquote>  <pre>
208  <pre>cvs update -d -P</pre>    cvs update -d -P
209  </blockquote>  </pre>
210    
211        <p>will work recursively on all files in the current directory and below.        <p>will work recursively on all files in the current directory and below.
212          To update just a specific file or directory:</p>          To update just a specific file or directory:</p>
213    
214  <blockquote>  <pre>
215  <pre>cvs update <i>file</i></pre>    cvs update <i>file</i>
216  </blockquote>  </pre>
217    
218      <p>You can also update to a specific version, just as you could check out      <p>You can also update to a specific version, just as you could check out
219        a specific version.</p>        a specific version.</p>
220    
221  <blockquote>  <pre>
222  <pre>cvs update -d -P -r release1_p5</pre>    cvs update -d -P -r release1_p5
223  </blockquote>  </pre>
224    
225      <p>If you checked out a specific version and want to update to the very      <p>If you checked out a specific version and want to update to the very
226        latest use the -A option will remove associated with a specific version as        latest use the -A option will remove associated with a specific version as
227        follows:</p>        follows:</p>
228    
229  <blockquote>  <pre>
230  <pre>cvs update -d -P -A</pre>    cvs update -d -P -A
231  </blockquote>  </pre>
232    
233      <p>"cvs update" produces output to the terminal with the following      <p>"cvs update" produces output to the terminal with the following
234        meanings:</p>        meanings:</p>
235        
236      <table align="center" border="0" cellpadding="10" width="90%" summary="CVS      <table align="center" border="0" cellpadding="10" width="90%" summary="CVS
237        update codes">        update codes">
238        <tr bgcolor="#00cccc">        <tr bgcolor="#00cccc">
# Line 242  $  cvs co -r checkpoint52a_post MITgcm Line 275  $  cvs co -r checkpoint52a_post MITgcm
275    
276      <h4>Wow! CVS is so good, where can I learn more?</h4>      <h4>Wow! CVS is so good, where can I learn more?</h4>
277    
278      <p>The <a href="http://www.loria.fr/~molli/cvs/doc/cvs_toc.html">basic      <p>The <a
279        manual</a> is a good reference. There is also an <a        href="http://web.mit.edu/afs/athena.mit.edu/project/gnu/doc/html/cvs_toc.html">basic
280        href="http://web.mit.edu/afs/athena.mit.edu/project/gnu/doc/html/cvs_toc.html">online        manual</a> is a good reference.
281        tutorial</a> as well as an <a        For those who prefer the good old fashioned book there's
282        href="http://www.loria.fr/~molli/cvs/cvstrain/cvstrain.html">training        <a href="http://cvsbook.red-bean.com/">"Open Source Development With CVS"</a>.</p>
       manual</a>. For those who prefer the good old fashioned book there's <a  
       href="http://cvsbook.red-bean.com/">"Open Source Development With  
       CVS"</a>.</p>  
283    
284    </body>    </body>
285  </html>  </html>

Legend:
Removed from v.1.2  
changed lines
  Added in v.1.15

  ViewVC Help
Powered by ViewVC 1.1.22