|
1 | 1 | <!-- |
2 | | -$Header: /cvsroot/pgsql/doc/src/sgml/cvs.sgml,v 1.13 2000/12/22 21:51:57 petere Exp $ |
| 2 | +$Header: /cvsroot/pgsql/doc/src/sgml/cvs.sgml,v 1.14 2001/01/20 04:16:55 momjian Exp $ |
3 | 3 | CVS code repository |
4 | 4 | Thomas Lockhart |
5 | 5 | --> |
@@ -37,123 +37,6 @@ Thomas Lockhart |
37 | 37 | <productname>Postgres</productname> server to your local machine. |
38 | 38 | </para> |
39 | 39 |
|
40 | | - <sect1 id="cvs-tree"> |
41 | | - <title><productname>CVS</productname> Tree Organization</title> |
42 | | - |
43 | | - <para> |
44 | | - <note> |
45 | | - <title>Author</title> |
46 | | - <para> |
47 | | - Written by Marc G. Fournier (<email>scrappy@hub.org</email>) on 1998-11-05 |
48 | | - </para> |
49 | | - </note> |
50 | | - </para> |
51 | | - |
52 | | - <para> |
53 | | - The command <command>cvs checkout</command> has a flag, <option>-r</option>, |
54 | | - that lets you check out a |
55 | | - certain revision of a module. This flag makes it easy to, for example, |
56 | | - retrieve the |
57 | | - sources that make up release 1.0 of the module `tc' at any time in the |
58 | | - future: |
59 | | - |
60 | | - <programlisting> |
61 | | -$ cvs checkout -r REL6_4 tc |
62 | | - </programlisting> |
63 | | - |
64 | | - This is useful, for instance, if someone claims that there is a bug in |
65 | | - that release, but you cannot find the bug in the current working copy. |
66 | | - |
67 | | - <tip> |
68 | | - <para> |
69 | | - You can also check out a module as it was at any given date using the |
70 | | - <option>-D</option> option. |
71 | | - </para> |
72 | | - </tip> |
73 | | - </para> |
74 | | - |
75 | | - <para> |
76 | | - When you tag more than one file with the same tag you can think |
77 | | - about the tag as "a curve drawn through a matrix of filename vs. |
78 | | - revision number". Say we have 5 files with the following revisions: |
79 | | - |
80 | | - <programlisting> |
81 | | - file1 file2 file3 file4 file5 |
82 | | - |
83 | | - 1.1 1.1 1.1 1.1 /--1.1* <-*- TAG |
84 | | - 1.2*- 1.2 1.2 -1.2*- |
85 | | - 1.3 \- 1.3*- 1.3 / 1.3 |
86 | | - 1.4 \ 1.4 / 1.4 |
87 | | - \-1.5*- 1.5 |
88 | | - 1.6 |
89 | | - </programlisting> |
90 | | - |
91 | | - then the tag "<literal>TAG</literal>" will reference |
92 | | - file1-1.2, file2-1.3, etc. |
93 | | - |
94 | | - <note> |
95 | | - <para> |
96 | | - For creating a release branch, other then a |
97 | | - -b option added to the command, it's the same thing.</para> |
98 | | - </note> |
99 | | - </para> |
100 | | - |
101 | | - <para> |
102 | | - So, to create the 6.4 release |
103 | | - I did the following: |
104 | | - |
105 | | - <programlisting> |
106 | | -$ cd pgsql |
107 | | -$ cvs tag -b REL6_4 |
108 | | - </programlisting> |
109 | | - |
110 | | - which will create the tag and the branch for the RELEASE tree. |
111 | | - </para> |
112 | | - |
113 | | - <para> |
114 | | - Now, for those with <productname>CVS</productname> access, it's too simple. |
115 | | - First, create two subdirectories, RELEASE and CURRENT, so that you don't |
116 | | - mix up the two. Then do: |
117 | | - |
118 | | - <programlisting> |
119 | | -cd RELEASE |
120 | | -cvs checkout -P -r REL6_4 pgsql |
121 | | -cd ../CURRENT |
122 | | -cvs checkout -P pgsql |
123 | | - </programlisting> |
124 | | - |
125 | | - which results in two directory trees, <filename>RELEASE/pgsql</filename> and |
126 | | - <filename>CURRENT/pgsql</filename>. From that point on, |
127 | | - <productname>CVS</productname> |
128 | | - will keep track of which repository branch is in which directory tree, and will |
129 | | - allow independent updates of either tree. |
130 | | - </para> |
131 | | - |
132 | | - <para> |
133 | | - If you are <emphasis>only</emphasis> working on the <literal>CURRENT</literal> |
134 | | - source tree, you just do |
135 | | - everything as before we started tagging release branches. |
136 | | - </para> |
137 | | - |
138 | | - <para> |
139 | | - After you've done the initial checkout on a branch |
140 | | - |
141 | | - <programlisting> |
142 | | -$ cvs checkout -r REL6_4 |
143 | | - </programlisting> |
144 | | - |
145 | | - anything you do within that directory structure is restricted to that |
146 | | - branch. If you apply a patch to that directory structure and do a |
147 | | - |
148 | | - <programlisting> |
149 | | -cvs commit |
150 | | - </programlisting> |
151 | | - |
152 | | - while inside of it, the patch is applied to the branch and |
153 | | - <emphasis>only</emphasis> the branch. |
154 | | - </para> |
155 | | - </sect1> |
156 | | - |
157 | 40 | <sect1 id="anoncvs"> |
158 | 41 | <title>Getting The Source Via Anonymous <productname>CVS</productname></title> |
159 | 42 |
|
@@ -286,6 +169,124 @@ $ chmod -R go-w pgsql |
286 | 169 | </para> |
287 | 170 | </sect1> |
288 | 171 |
|
| 172 | + <sect1 id="cvs-tree"> |
| 173 | + <title><productname>CVS</productname> Tree Organization</title> |
| 174 | + |
| 175 | + <para> |
| 176 | + <note> |
| 177 | + <title>Author</title> |
| 178 | + <para> |
| 179 | + Written by Marc G. Fournier (<email>scrappy@hub.org</email>) on 1998-11-05 |
| 180 | + </para> |
| 181 | + </note> |
| 182 | + </para> |
| 183 | + |
| 184 | + <para> |
| 185 | + The command <command>cvs checkout</command> has a flag, <option>-r</option>, |
| 186 | + that lets you check out a |
| 187 | + certain revision of a module. This flag makes it easy to, for example, |
| 188 | + retrieve the |
| 189 | + sources that make up release 6_4 of the module `tc' at any time in the |
| 190 | + future: |
| 191 | + |
| 192 | + <programlisting> |
| 193 | +$ cvs checkout -r REL6_4 tc |
| 194 | + </programlisting> |
| 195 | + |
| 196 | + This is useful, for instance, if someone claims that there is a bug in |
| 197 | + that release, but you cannot find the bug in the current working copy. |
| 198 | + |
| 199 | + <tip> |
| 200 | + <para> |
| 201 | + You can also check out a module as it was at any given date using the |
| 202 | + <option>-D</option> option. |
| 203 | + </para> |
| 204 | + </tip> |
| 205 | + </para> |
| 206 | + |
| 207 | + <para> |
| 208 | + When you tag more than one file with the same tag you can think |
| 209 | + about the tag as "a curve drawn through a matrix of filename vs. |
| 210 | + revision number". Say we have 5 files with the following revisions: |
| 211 | + |
| 212 | + <programlisting> |
| 213 | + file1 file2 file3 file4 file5 |
| 214 | + |
| 215 | + 1.1 1.1 1.1 1.1 /--1.1* <-*- TAG |
| 216 | + 1.2*- 1.2 1.2 -1.2*- |
| 217 | + 1.3 \- 1.3*- 1.3 / 1.3 |
| 218 | + 1.4 \ 1.4 / 1.4 |
| 219 | + \-1.5*- 1.5 |
| 220 | + 1.6 |
| 221 | + </programlisting> |
| 222 | + |
| 223 | + then the tag "<literal>TAG</literal>" will reference |
| 224 | + file1-1.2, file2-1.3, etc. |
| 225 | + |
| 226 | + <note> |
| 227 | + <para> |
| 228 | + For creating a release branch, other then a |
| 229 | + -b option added to the command, it's the same thing.</para> |
| 230 | + </note> |
| 231 | + </para> |
| 232 | + |
| 233 | + <para> |
| 234 | + So, to create the 6.4 release |
| 235 | + I did the following: |
| 236 | + |
| 237 | + <programlisting> |
| 238 | +$ cd pgsql |
| 239 | +$ cvs tag -b REL6_4 |
| 240 | + </programlisting> |
| 241 | + |
| 242 | + which will create the tag and the branch for the RELEASE tree. |
| 243 | + </para> |
| 244 | + |
| 245 | + <para> |
| 246 | + For those with <productname>CVS</productname> access, it's simple to |
| 247 | + create directories for different versions. |
| 248 | + First, create two subdirectories, RELEASE and CURRENT, so that you don't |
| 249 | + mix up the two. Then do: |
| 250 | + |
| 251 | + <programlisting> |
| 252 | +cd RELEASE |
| 253 | +cvs checkout -P -r REL6_4 pgsql |
| 254 | +cd ../CURRENT |
| 255 | +cvs checkout -P pgsql |
| 256 | + </programlisting> |
| 257 | + |
| 258 | + which results in two directory trees, <filename>RELEASE/pgsql</filename> and |
| 259 | + <filename>CURRENT/pgsql</filename>. From that point on, |
| 260 | + <productname>CVS</productname> |
| 261 | + will keep track of which repository branch is in which directory tree, and will |
| 262 | + allow independent updates of either tree. |
| 263 | + </para> |
| 264 | + |
| 265 | + <para> |
| 266 | + If you are <emphasis>only</emphasis> working on the <literal>CURRENT</literal> |
| 267 | + source tree, you just do |
| 268 | + everything as before we started tagging release branches. |
| 269 | + </para> |
| 270 | + |
| 271 | + <para> |
| 272 | + After you've done the initial checkout on a branch |
| 273 | + |
| 274 | + <programlisting> |
| 275 | +$ cvs checkout -r REL6_4 |
| 276 | + </programlisting> |
| 277 | + |
| 278 | + anything you do within that directory structure is restricted to that |
| 279 | + branch. If you apply a patch to that directory structure and do a |
| 280 | + |
| 281 | + <programlisting> |
| 282 | +cvs commit |
| 283 | + </programlisting> |
| 284 | + |
| 285 | + while inside of it, the patch is applied to the branch and |
| 286 | + <emphasis>only</emphasis> the branch. |
| 287 | + </para> |
| 288 | + </sect1> |
| 289 | + |
289 | 290 | <sect1 id="cvsup"> |
290 | 291 | <title>Getting The Source Via <productname>CVSup</productname></title> |
291 | 292 |
|
|