version 1, including all changes.
.
Rev |
Author |
# |
Line |
1 |
perry |
1 |
cvs |
|
|
2 |
!!!cvs |
|
|
3 |
NAME |
|
|
4 |
SYNOPSIS |
|
|
5 |
DESCRIPTION |
|
|
6 |
FILES |
|
|
7 |
SEE ALSO |
|
|
8 |
COPYING |
|
|
9 |
---- |
|
|
10 |
!!NAME |
|
|
11 |
|
|
|
12 |
|
|
|
13 |
cvs - Concurrent Versions System support files |
|
|
14 |
!!SYNOPSIS |
|
|
15 |
|
|
|
16 |
|
|
|
17 |
__$CVSROOT/CVSROOT/commitinfo,v__ |
|
|
18 |
|
|
|
19 |
|
|
|
20 |
__$CVSROOT/CVSROOT/cvsignore,v__ |
|
|
21 |
|
|
|
22 |
|
|
|
23 |
__$CVSROOT/CVSROOT/cvswrappers,v__ |
|
|
24 |
|
|
|
25 |
|
|
|
26 |
__$CVSROOT/CVSROOT/editinfo,v__ |
|
|
27 |
|
|
|
28 |
|
|
|
29 |
__$CVSROOT/CVSROOT/history__ |
|
|
30 |
|
|
|
31 |
|
|
|
32 |
__$CVSROOT/CVSROOT/loginfo,v__ |
|
|
33 |
|
|
|
34 |
|
|
|
35 |
__$CVSROOT/CVSROOT/modules,v__ |
|
|
36 |
|
|
|
37 |
|
|
|
38 |
__$CVSROOT/CVSROOT/rcsinfo,v__ |
|
|
39 |
|
|
|
40 |
|
|
|
41 |
__$CVSROOT/CVSROOT/taginfo,v__ |
|
|
42 |
!!DESCRIPTION |
|
|
43 |
|
|
|
44 |
|
|
|
45 |
__cvs__ is a system for providing source control to |
|
|
46 |
hierarchi- cal collections of source directories. Commands |
|
|
47 |
and pro- cedures for using __cvs__ are described in |
|
|
48 |
__cvs__(__1__). |
|
|
49 |
|
|
|
50 |
|
|
|
51 |
__cvs__ manages ''source repositories'', the |
|
|
52 |
directories contain- ing master copies of the |
|
|
53 |
revision-controlled files, by copying particular revisions |
|
|
54 |
of the files to (and modifi- cations back from) developers' |
|
|
55 |
private ''working directo- ries''. In terms of file |
|
|
56 |
structure, each individual source repository is an immediate |
|
|
57 |
subdirectory of __$CVSROOT__. |
|
|
58 |
|
|
|
59 |
|
|
|
60 |
The files described here are supporting files; they do not |
|
|
61 |
have to exist for __cvs__ to operate, but they allow you |
|
|
62 |
to make __cvs__ operation more flexible. |
|
|
63 |
|
|
|
64 |
|
|
|
65 |
You can use the `modules' file to define symbolic names for |
|
|
66 |
collections of source maintained with __cvs__. If there |
|
|
67 |
is no `modules' file, developers must specify complete path |
|
|
68 |
names (absolute, or relative to __$CVSROOT__) for the |
|
|
69 |
files they wish to manage with __cvs__ |
|
|
70 |
commands. |
|
|
71 |
|
|
|
72 |
|
|
|
73 |
You can use the `commitinfo' file to define programs to |
|
|
74 |
execute whenever `__cvs commit__' is about to execute. |
|
|
75 |
These programs are used for ``pre-commit'' checking to |
|
|
76 |
verify that the modified, added, and removed files are |
|
|
77 |
really ready to be committed. Some uses for this check might |
|
|
78 |
be to turn off a portion (or all) of the source repository |
|
|
79 |
from a particular person or group. Or, perhaps, to verify |
|
|
80 |
that the changed files conform to the site's standards for |
|
|
81 |
coding practice. |
|
|
82 |
|
|
|
83 |
|
|
|
84 |
You can use the `cvswrappers' file to record __cvs__ |
|
|
85 |
wrapper commands to be used when checking files into and out |
|
|
86 |
of the repository. Wrappers allow the file or directory to |
|
|
87 |
be processed on the way in and out of CVS. The intended uses |
|
|
88 |
are many, one possible use would be to reformat a C file |
|
|
89 |
before the file is checked in, so all of the code in the |
|
|
90 |
repository looks the same. |
|
|
91 |
|
|
|
92 |
|
|
|
93 |
You can use the `loginfo' file to define programs to exe- |
|
|
94 |
cute after any __commit__, which writes a log entry for |
|
|
95 |
changes in the repository. These logging programs might be |
|
|
96 |
used to append the log message to a file. Or send the log |
|
|
97 |
message through electronic mail to a group of develop- ers. |
|
|
98 |
Or, perhaps, post the log message to a particular |
|
|
99 |
newsgroup. |
|
|
100 |
|
|
|
101 |
|
|
|
102 |
You can use the `taginfo' file to define programs to exe- |
|
|
103 |
cute after any __tag__or__rtag__ operation. These |
|
|
104 |
programs might be used to append a message to a file listing |
|
|
105 |
the new tag name and the programmer who created it, or send |
|
|
106 |
mail to a group of developers, or, perhaps, post a message |
|
|
107 |
to a par- ticular newsgroup. |
|
|
108 |
|
|
|
109 |
|
|
|
110 |
You can use the `rcsinfo' file to define forms for log |
|
|
111 |
messages. |
|
|
112 |
|
|
|
113 |
|
|
|
114 |
You can use the `editinfo' file to define a program to ex- |
|
|
115 |
ecute for editing/validating `__cvs commit__' log |
|
|
116 |
entries. This is most useful when used with a `rcsinfo' |
|
|
117 |
forms spec- ification, as it can verify that the proper |
|
|
118 |
fields of the form have been filled in by the user |
|
|
119 |
committing the change. |
|
|
120 |
|
|
|
121 |
|
|
|
122 |
You can use the `cvsignore' file to specify the default list |
|
|
123 |
of files to ignore during __update__. |
|
|
124 |
|
|
|
125 |
|
|
|
126 |
You can use the `history' file to record the __cvs__ |
|
|
127 |
commands that affect the repository. The creation of this |
|
|
128 |
file en- ables history logging. |
|
|
129 |
!!FILES |
|
|
130 |
|
|
|
131 |
|
|
|
132 |
__modules__ |
|
|
133 |
|
|
|
134 |
|
|
|
135 |
The `modules' file records your definitions of names for |
|
|
136 |
collections of source code. __cvs__ will use these |
|
|
137 |
definitions if you use __cvs__ to check in a file with |
|
|
138 |
the right format to `__$CVSROOT/CVSROOT/mod- |
|
|
139 |
ules,v__'. |
|
|
140 |
|
|
|
141 |
|
|
|
142 |
The `modules' file may contain blank lines and com- ments |
|
|
143 |
(lines beginning with `__#__') as well as module |
|
|
144 |
definitions. Long lines can be continued on the next line by |
|
|
145 |
specifying a backslash (``'') as the last character on the |
|
|
146 |
line. |
|
|
147 |
|
|
|
148 |
|
|
|
149 |
A ''module definition'' is a single line of the `mod- |
|
|
150 |
ules' file, in either of two formats. In both cas- es, |
|
|
151 |
''mname'' represents the symbolic module name, and the |
|
|
152 |
remainder of the line is its definition. |
|
|
153 |
|
|
|
154 |
|
|
|
155 |
''mname'' __-a__ ''aliases''... |
|
|
156 |
This represents the simplest way of defining a mod- ule |
|
|
157 |
''mname''. The `__-a__' flags the definition as a sim- |
|
|
158 |
ple alias: __cvs__ will treat any use of ''mname'' (as |
|
|
159 |
a command argument) as if the list of names ''aliases'' |
|
|
160 |
had been specified instead. ''aliases'' may contain |
|
|
161 |
either other module names or paths. When you use paths in |
|
|
162 |
''aliases'', `__cvs checkout__' creates all inter- |
|
|
163 |
mediate directories in the working directory, just as if the |
|
|
164 |
path had been specified explicitly in the __cvs__ |
|
|
165 |
arguments. |
|
|
166 |
|
|
|
167 |
|
|
|
168 |
''mname'' [[ ''options'' ] ''dir'' [[ ''files''... ] [[ ____''module''... ] |
|
|
169 |
In the simplest case, this form of module defini- tion reduces to `''mname dir'''. This defines all the files in directory ''dir'' as module ''mname''. ''dir'' is a relative path (from __$CVSROOT__) to a directory of source in one of the source repositories. In this case, on __checkout__, a single directory called ''mname'' is created as a working directory; no intermediate directory levels are used by default, even if ''dir'' was a path involving several directory levels. |
|
|
170 |
|
|
|
171 |
|
|
|
172 |
By explicitly specifying ''files'' in the module defi- |
|
|
173 |
nition after ''dir'', you can select particular files |
|
|
174 |
from directory ''dir''. The sample definition for __mod- |
|
|
175 |
ules__ is an example of a module defined with a sin- gle |
|
|
176 |
file from a particular directory. Here is an- other |
|
|
177 |
example: |
|
|
178 |
|
|
|
179 |
|
|
|
180 |
__m4test unsupported/gnu/m4 foreach.m4 forloop.m4 |
|
|
181 |
__With this definition, executing `__cvs checkout m4test__' will create a single working directory `m4test' containing the two files listed, which both come from a common directory several levels deep in the __cvs__ source repository. |
|
|
182 |
|
|
|
183 |
|
|
|
184 |
A module definition can refer to other modules by including |
|
|
185 |
`____''module''' in its definition. |
|
|
186 |
__checkout__ creates a subdirectory for each such |
|
|
187 |
''module'', in your working directory.'' |
|
|
188 |
New in'' __cvs__ ''1.3;'' avoid this feature if |
|
|
189 |
sharing mod- ule definitions with older versions of |
|
|
190 |
__cvs__. |
|
|
191 |
|
|
|
192 |
|
|
|
193 |
Finally, you can use one or more of the following |
|
|
194 |
''options'' in module definitions: |
|
|
195 |
|
|
|
196 |
|
|
|
197 |
`__-d__ ''name''', to name the working directory |
|
|
198 |
something other than the module name.'' |
|
|
199 |
New in'' __cvs__ ''1.3;'' avoid this feature if |
|
|
200 |
sharing mod- ule definitions with older versions of |
|
|
201 |
__cvs__. |
|
|
202 |
|
|
|
203 |
|
|
|
204 |
`__-i__ ''prog''' allows you to specify a program |
|
|
205 |
''prog'' to run whenever files in a module are committed. |
|
|
206 |
''prog'' runs with a single argument, the full pathname |
|
|
207 |
of the affected directory in a source repository. The |
|
|
208 |
`commitinfo', `loginfo', and `editinfo' files provide other |
|
|
209 |
ways to call a program on __commit__. |
|
|
210 |
|
|
|
211 |
|
|
|
212 |
`__-o__ ''prog''' allows you to specify a program |
|
|
213 |
''prog'' to run whenever files in a module are checked |
|
|
214 |
out. ''prog'' runs with a single argument, the module |
|
|
215 |
name. |
|
|
216 |
|
|
|
217 |
|
|
|
218 |
`__-e__ ''prog''' allows you to specify a program |
|
|
219 |
''prog'' to run whenever files in a module are exported. |
|
|
220 |
''prog'' runs with a single argument, the module |
|
|
221 |
name. |
|
|
222 |
|
|
|
223 |
|
|
|
224 |
`__-t__ ''prog''' allows you to specify a program |
|
|
225 |
''prog'' to run whenever files in a module are tagged. |
|
|
226 |
''prog'' runs with two arguments: the module name and the |
|
|
227 |
symbolic tag specified to __rtag__. |
|
|
228 |
|
|
|
229 |
|
|
|
230 |
`__-u__ ''prog''' allows you to specify a program |
|
|
231 |
''prog'' to run whenever `__cvs update__' is executed |
|
|
232 |
from the top-level directory of the checked-out module. |
|
|
233 |
''prog'' runs with a single argument, the full path to |
|
|
234 |
the source repository for this module. |
|
|
235 |
|
|
|
236 |
|
|
|
237 |
__commitinfo__, __loginfo__, __rcsinfo__, |
|
|
238 |
__editinfo__ |
|
|
239 |
|
|
|
240 |
|
|
|
241 |
These files all specify programs to call at differ- ent |
|
|
242 |
points in the `__cvs commit__' process. They have a |
|
|
243 |
common structure. Each line is a pair of fields: a regular |
|
|
244 |
expression, separated by whitespace from a filename or |
|
|
245 |
command-line template. Whenever one of the regular |
|
|
246 |
expression matches a directory name in the repository, the |
|
|
247 |
rest of the line is used. If the line begins with a __#__ |
|
|
248 |
character, the entire line is considered a comment and is |
|
|
249 |
ignored. Whitespace between the fields is also |
|
|
250 |
ignored. |
|
|
251 |
|
|
|
252 |
|
|
|
253 |
For `loginfo', the rest of the line is a com- mand-line |
|
|
254 |
template to execute. The templates can include not only a |
|
|
255 |
program name, but whatever list of arguments you wish. If |
|
|
256 |
you write `__%s__' somewhere on the argument list, |
|
|
257 |
__cvs__ supplies, at that point, the list of files |
|
|
258 |
affected by the __commit__. The first entry in the list |
|
|
259 |
is the relative path within the source repository where the |
|
|
260 |
change is being made. The remaining arguments list the files |
|
|
261 |
that are being modified, added, or removed by this __com- |
|
|
262 |
mit__ invocation. |
|
|
263 |
|
|
|
264 |
|
|
|
265 |
For `taginfo', the rest of the line is a com- mand-line |
|
|
266 |
template to execute. The arguments passed to the command |
|
|
267 |
are, in order, the ''tagname , operation'' (i.e. |
|
|
268 |
__add__ for `tag', __mov__ for `tag -F', and |
|
|
269 |
__del__ for `tag -d`), ''repository ,'' and any |
|
|
270 |
remain- ing are pairs of __filename revision .__ A |
|
|
271 |
non-zero exit of the filter program will cause the tag to be |
|
|
272 |
aborted. |
|
|
273 |
|
|
|
274 |
|
|
|
275 |
For `commitinfo', the rest of the line is a com- mand-line |
|
|
276 |
template to execute. The template can include not only a |
|
|
277 |
program name, but whatever list of arguments you wish. The |
|
|
278 |
full path to the cur- rent source repository is appended to |
|
|
279 |
the template, followed by the file names of any files |
|
|
280 |
involved in the commit (added, removed, and modified |
|
|
281 |
files). |
|
|
282 |
|
|
|
283 |
|
|
|
284 |
For `rcsinfo', the rest of the line is the full path to a |
|
|
285 |
file that should be loaded into the log message |
|
|
286 |
template. |
|
|
287 |
|
|
|
288 |
|
|
|
289 |
For `editinfo', the rest of the line is a com- mand-line |
|
|
290 |
template to execute. The template can include not only a |
|
|
291 |
program name, but whatever list of arguments you wish. The |
|
|
292 |
full path to the cur- rent log message template file is |
|
|
293 |
appended to the template. |
|
|
294 |
|
|
|
295 |
|
|
|
296 |
You can use one of two special strings instead of a regular |
|
|
297 |
expression: `__ALL__' specifies a command line template |
|
|
298 |
that must always be executed, and `__DE- FAULT__' |
|
|
299 |
specifies a command line template to use if no regular |
|
|
300 |
expression is a match. |
|
|
301 |
|
|
|
302 |
|
|
|
303 |
The `commitinfo' file contains commands to execute |
|
|
304 |
''before'' any other __commit__ activity, to allow you |
|
|
305 |
to check any conditions that must be satisfied before |
|
|
306 |
__commit__ can proceed. The rest of the __commit__ |
|
|
307 |
will execute only if all selected commands from this file |
|
|
308 |
exit with exit status __0__. |
|
|
309 |
|
|
|
310 |
|
|
|
311 |
The `rcsinfo' file allows you to specify ''log tem- |
|
|
312 |
plates'' for the __commit__ logging session; you can |
|
|
313 |
use this to provide a form to edit when filling out the |
|
|
314 |
__commit__ log. The field after the regular expres- sion, |
|
|
315 |
in this file, contains filenames (of files containing the |
|
|
316 |
logging forms) rather than command templates. |
|
|
317 |
|
|
|
318 |
|
|
|
319 |
The `editinfo' file allows you to execute a script ''before |
|
|
320 |
the commit starts'', but after the log infor- mation is |
|
|
321 |
recorded. These |
|
|
322 |
'' |
|
|
323 |
|
|
|
324 |
|
|
|
325 |
The `loginfo' file contains commands to execute ''at the |
|
|
326 |
end'' of a commit. The text specified as a com- mit log |
|
|
327 |
message is piped through the command; typi- cal uses include |
|
|
328 |
sending mail, filing an article in a newsgroup, or appending |
|
|
329 |
to a central file. |
|
|
330 |
|
|
|
331 |
|
|
|
332 |
__cvsignore__, __.cvsignore__ |
|
|
333 |
|
|
|
334 |
|
|
|
335 |
The default list of files (or __sh__(__1__) file name |
|
|
336 |
pat- terns) to ignore during `__cvs update__'. At startup |
|
|
337 |
time, __cvs__ loads the compiled in default list of file |
|
|
338 |
name patterns (see __cvs__(__1__)). Then the |
|
|
339 |
per-repository list included in __$CVSROOT/CVS- |
|
|
340 |
ROOT/cvsignore__ is loaded, if it exists. Then the |
|
|
341 |
per-user list is loaded from `$HOME/.cvsignore'. Finally, as |
|
|
342 |
__cvs__ traverses through your directories, it will load |
|
|
343 |
any per-directory `.cvsignore' files whenever it finds one. |
|
|
344 |
These per-directory files are only valid for exactly the |
|
|
345 |
directory that con- tains them, not for any |
|
|
346 |
sub-directories. |
|
|
347 |
|
|
|
348 |
|
|
|
349 |
__history__ |
|
|
350 |
|
|
|
351 |
|
|
|
352 |
Create this file in __$CVSROOT/CVSROOT__ to enable his- |
|
|
353 |
tory logging (see the description of `__cvs histo- |
|
|
354 |
ry__'). |
|
|
355 |
!!SEE ALSO |
|
|
356 |
|
|
|
357 |
|
|
|
358 |
__cvs__(__1__), |
|
|
359 |
!!COPYING |
|
|
360 |
|
|
|
361 |
|
|
|
362 |
Copyright 1992 Cygnus Support, Brian Berliner, and Jeff |
|
|
363 |
Polk |
|
|
364 |
|
|
|
365 |
|
|
|
366 |
Permission is granted to make and distribute verbatim copies |
|
|
367 |
of this manual provided the copyright notice and this |
|
|
368 |
permission notice are preserved on all copies. |
|
|
369 |
|
|
|
370 |
|
|
|
371 |
Permission is granted to copy and distribute modified ver- |
|
|
372 |
sions of this manual under the conditions for verbatim |
|
|
373 |
copying, provided that the entire resulting derived work is |
|
|
374 |
distributed under the terms of a permission notice identical |
|
|
375 |
to this one. |
|
|
376 |
|
|
|
377 |
|
|
|
378 |
Permission is granted to copy and distribute translations of |
|
|
379 |
this manual into another language, under the above con- |
|
|
380 |
ditions for modified versions, except that this permission |
|
|
381 |
notice may be included in translations approved by the Free |
|
|
382 |
Software Foundation instead of in the original En- |
|
|
383 |
glish. |
|
|
384 |
---- |