Don't reference nanosleep at all, but describe the behaviour.
[dragonfly.git] / contrib / cvs-1.12.12 / doc / cvs.1
1 .\" This is the man page for CVS.  It is auto-generated from the
2 .\" cvs.man.header, cvs.texinfo, & cvs.man.footer files.  Please make changes
3 .\" there.  A full copyright & license notice may also be found in cvs.texinfo.
4 .\"
5 .\" Man page autogeneration, including this header file, is
6 .\" Copyright 2004-2005 The Free Software Foundation, Inc.,
7 .\"                     Derek R. Price, & Ximbiot <http://ximbiot.com>.
8 .\"
9 .\" This documentation is free software; you can redistribute it and/or modify
10 .\" it under the terms of the GNU General Public License as published by
11 .\" the Free Software Foundation; either version 2, or (at your option)
12 .\" any later version.
13 .\"
14 .\" This documentation is distributed in the hope that it will be useful,
15 .\" but WITHOUT ANY WARRANTY; without even the implied warranty of
16 .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17 .\" GNU General Public License for more details.
18 .\"
19 .\" You should have received a copy of the GNU General Public License
20 .\" along with this documentation; if not, write to the Free Software
21 .\" Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
22 .de Id
23 .ds Rv \\$3
24 .ds Dt \\$4
25 ..
26 .TH CVS 1 "\*(Dt"
27 .\" Full space in nroff; half space in troff
28 .de SP
29 .if n .sp
30 .if t .sp .5
31 ..
32 .\" quoted command
33 .de `
34 .RB ` "\|\\$1\|" '\\$2
35 ..
36 .SH "NAME"
37 cvs \- Concurrent Versions System
38 .SH "SYNOPSIS"
39 .TP
40 \fBcvs\fP [ \fIcvs_options\fP ]
41 .I cvs_command
42 [
43 .I command_options
44 ] [
45 .I command_args
46 ]
47 .SH "NOTE"
48 .IX "revision control system" "\fLcvs\fR"
49 .IX  cvs  ""  "\fLcvs\fP \- concurrent versions system"
50 .IX  "concurrent versions system \- \fLcvs\fP"
51 .IX  "release control system"  "cvs command"  ""  "\fLcvs\fP \- concurrent versions system"
52 .IX  "source control system"  "cvs command"  ""  "\fLcvs\fP \- concurrent versions system"
53 .IX  revisions  "cvs command"  ""  "\fLcvs\fP \- source control"
54 This manpage is a summary of some of the features of
55 \fBcvs\fP.  It is auto-generated from an appendix of the CVS manual.
56 For more in-depth documentation, please consult the
57 Cederqvist manual (via the
58 .B info CVS
59 command or otherwise,
60 as described in the SEE ALSO section of this manpage).  Cross-references
61 in this man page refer to nodes in the same.
62 .SH "CVS commands"
63 .SS "Guide to CVS commands"
64 .SP
65 This appendix describes the overall structure of
66 \fBcvs\fR commands, and describes some commands in
67 detail (others are described elsewhere; for a quick
68 reference to \fBcvs\fR commands, see node `Invoking CVS\(aq in the CVS manual).
69 .SP
70 .SH "Structure"
71 .SS "Overall structure of CVS commands"
72 .IX "Structure"
73 .IX "CVS command structure"
74 .IX "Command structure"
75 .IX "Format of CVS commands"
76 .SP
77 The overall format of all \fBcvs\fR commands is:
78 .SP
79 .PD 0
80 .SP
81 .IP "" 2
82 cvs [ cvs_options ] cvs_command [ command_options ] [ command_args ]
83
84 .PD
85 .IP "" 0
86 .SP
87 .IP "" 0
88 \fBcvs\fR
89 .IP "" 2
90 The name of the \fBcvs\fR program.
91 .SP
92 .IP "" 0
93 \fBcvs_options\fR
94 .IP "" 2
95 Some options that affect all sub-commands of \fBcvs\fR.  These are
96 described below.
97 .SP
98 .IP "" 0
99 \fBcvs_command\fR
100 .IP "" 2
101 One of several different sub-commands.  Some of the commands have
102 aliases that can be used instead; those aliases are noted in the
103 reference manual for that command.  There are only two situations
104 where you may omit \fBcvs_command\fR: \fBcvs -H\fR elicits a
105 list of available commands, and \fBcvs -v\fR displays version
106 information on \fBcvs\fR itself.
107 .SP
108 .IP "" 0
109 \fBcommand_options\fR
110 .IP "" 2
111 Options that are specific for the command.
112 .SP
113 .IP "" 0
114 \fBcommand_args\fR
115 .IP "" 2
116 Arguments to the commands.
117 .SP
118 There is unfortunately some confusion between
119 \fBcvs_options\fR and \fBcommand_options\fR.
120 When given as a \fBcvs_option\fR, some options only
121 affect some of the commands.  When given as a
122 \fBcommand_option\fR it may have a different meaning, and
123 be accepted by more commands.  In other words, do not
124 take the above categorization too seriously.  Look at
125 the documentation instead.
126 .SP
127 .SH "Exit status"
128 .SS "CVS\(aqs exit status"
129 .IX "Exit status, of CVS"
130 .SP
131 \fBcvs\fR can indicate to the calling environment whether it
132 succeeded or failed by setting its \fIexit status\fR.
133 The exact way of testing the exit status will vary from
134 one operating system to another.  For example in a unix
135 shell script the \fB$?\fR variable will be 0 if the
136 last command returned a successful exit status, or
137 greater than 0 if the exit status indicated failure.
138 .SP
139 If \fBcvs\fR is successful, it returns a successful status;
140 if there is an error, it prints an error message and
141 returns a failure status.  The one exception to this is
142 the \fBcvs diff\fR command.  It will return a
143 successful status if it found no differences, or a
144 failure status if there were differences or if there
145 was an error.  Because this behavior provides no good
146 way to detect errors, in the future it is possible that
147 \fBcvs diff\fR will be changed to behave like the
148 other \fBcvs\fR commands.
149 .SP
150 .SH "~/.cvsrc"
151 .SS "Default options and the ~/.cvsrc file"
152 .IX "\&.cvsrc file"
153 .IX "Option defaults"
154 .SP
155 There are some \fBcommand_options\fR that are used so
156 often that you might have set up an alias or some other
157 means to make sure you always specify that option.  One
158 example (the one that drove the implementation of the
159 \fB.cvsrc\fR support, actually) is that many people find the
160 default output of the \fBdiff\fR command to be very
161 hard to read, and that either context diffs or unidiffs
162 are much easier to understand.
163 .SP
164 The \fB~/.cvsrc\fR file is a way that you can add
165 default options to \fBcvs_commands\fR within cvs,
166 instead of relying on aliases or other shell scripts.
167 .SP
168 The format of the \fB~/.cvsrc\fR file is simple.  The
169 file is searched for a line that begins with the same
170 name as the \fBcvs_command\fR being executed.  If a
171 match is found, then the remainder of the line is split
172 up (at whitespace characters) into separate options and
173 added to the command arguments \fIbefore\fR any
174 options from the command line.
175 .SP
176 If a command has two names (e.g., \fBcheckout\fR and
177 \fBco\fR), the official name, not necessarily the one
178 used on the command line, will be used to match against
179 the file.  So if this is the contents of the user\(aqs
180 \fB~/.cvsrc\fR file:
181 .SP
182 .PD 0
183 .SP
184 .IP "" 2
185 log -N
186 .IP "" 2
187 diff -uN
188 .IP "" 2
189 rdiff -u
190 .IP "" 2
191 update -Pd
192 .IP "" 2
193 checkout -P
194 .IP "" 2
195 release -d
196
197 .PD
198 .IP "" 0
199 .SP
200 the command \fBcvs checkout foo\fR would have the
201 \fB-P\fR option added to the arguments, as well as
202 \fBcvs co foo\fR.
203 .SP
204 With the example file above, the output from \fBcvs
205 diff foobar\fR will be in unidiff format.  \fBcvs diff
206 -c foobar\fR will provide context diffs, as usual.
207 Getting "old" format diffs would be slightly more
208 complicated, because \fBdiff\fR doesn\(aqt have an option
209 to specify use of the "old" format, so you would need
210 \fBcvs -f diff foobar\fR.
211 .SP
212 In place of the command name you can use \fBcvs\fR to
213 specify global options (see node `Global options\(aq in the CVS manual).  For
214 example the following line in \fB.cvsrc\fR
215 .SP
216 .PD 0
217 .SP
218 .IP "" 2
219 cvs -z6
220
221 .PD
222 .IP "" 0
223 .SP
224 causes \fBcvs\fR to use compression level 6.
225 .SP
226 .SH "Global options"
227 .IX "Options, global"
228 .IX "Global options"
229 .IX "Left-hand options"
230 .SP
231 The available \fBcvs_options\fR (that are given to the
232 left of \fBcvs_command\fR) are:
233 .SP
234 .IP "" 0
235 \fB--allow-root=\fIrootdir\fB\fR
236 .IP "" 2
237 May be invoked multiple times to specify one legal \fBcvsroot\fR directory with
238 each invocation.  Also causes CVS to preparse the configuration file for each
239 specified root, which can be useful when configuring write proxies,  See
240 see node `Password authentication server\(aq in the CVS manual & see node `Write proxies\(aq in the CVS manual.
241 .SP
242 .IX "Authentication, stream"
243 .IX "Stream authentication"
244 .IP "" 0
245 \fB-a\fR
246 .IP "" 2
247 Authenticate all communication between the client and
248 the server.  Only has an effect on the \fBcvs\fR client.
249 As of this writing, this is only implemented when using
250 a GSSAPI connection (see node `GSSAPI authenticated\(aq in the CVS manual).
251 Authentication prevents certain sorts of attacks
252 involving hijacking the active \fBtcp\fR connection.
253 Enabling authentication does not enable encryption.
254 .SP
255 .IX "RCSBIN, overriding"
256 .IX "Overriding RCSBIN"
257 .IP "" 0
258 \fB-b \fIbindir\fB\fR
259 .IP "" 2
260 In \fBcvs\fR 1.9.18 and older, this specified that
261 \fBrcs\fR programs are in the \fIbindir\fR directory.
262 Current versions of \fBcvs\fR do not run \fBrcs\fR
263 programs; for compatibility this option is accepted,
264 but it does nothing.
265 .SP
266 .IX "TMPDIR, overriding"
267 .IX "Overriding TMPDIR"
268 .IP "" 0
269 \fB-T \fItempdir\fB\fR
270 .IP "" 2
271 Use \fItempdir\fR as the directory where temporary files are
272 located.  Overrides the setting of the \fB$TMPDIR\fR environment
273 variable and any precompiled directory.  This parameter should be
274 specified as an absolute pathname.
275 (When running client/server, \fB-T\fR affects only the local process;
276 specifying \fB-T\fR for the client has no effect on the server and
277 vice versa.)
278 .SP
279 .IX "CVSROOT, overriding"
280 .IX "Overriding CVSROOT"
281 .IP "" 0
282 \fB-d \fIcvs_root_directory\fB\fR
283 .IP "" 2
284 Use \fIcvs_root_directory\fR as the root directory
285 pathname of the repository.  Overrides the setting of
286 the \fB$CVSROOT\fR environment variable.  see node `Repository\(aq in the CVS manual.
287 .SP
288 .IX "EDITOR, overriding"
289 .IX "Overriding EDITOR"
290 .IP "" 0
291 \fB-e \fIeditor\fB\fR
292 .IP "" 2
293 Use \fIeditor\fR to enter revision log information.  Overrides the
294 setting of the \fB$CVSEDITOR\fR and \fB$EDITOR\fR
295 environment variables.  For more information, see
296 see node `Committing your changes\(aq in the CVS manual.
297 .SP
298 .IP "" 0
299 \fB-f\fR
300 .IP "" 2
301 Do not read the \fB~/.cvsrc\fR file.  This
302 option is most often used because of the
303 non-orthogonality of the \fBcvs\fR option set.  For
304 example, the \fBcvs log\fR option \fB-N\fR (turn off
305 display of tag names) does not have a corresponding
306 option to turn the display on.  So if you have
307 \fB-N\fR in the \fB~/.cvsrc\fR entry for \fBlog\fR,
308 you may need to use \fB-f\fR to show the tag names.
309 .SP
310 .IP "" 0
311 \fB-H\fR
312 .IP "" 2
313 .IP "" 0
314 \fB--help\fR
315 .IP "" 2
316 Display usage information about the specified \fBcvs_command\fR
317 (but do not actually execute the command).  If you don\(aqt specify
318 a command name, \fBcvs -H\fR displays overall help for
319 \fBcvs\fR, including a list of other help options.
320 .SP
321 .IX "Read-only repository mode"
322 .IP "" 0
323 \fB-R\fR
324 .IP "" 2
325 Turns on read-only repository mode.  This allows one to check out from a
326 read-only repository, such as within an anoncvs server, or from a \fBcd-rom\fR
327 repository.
328 .SP
329 Same effect as if the \fBCVSREADONLYFS\fR environment
330 variable is set. Using \fB-R\fR can also considerably
331 speed up checkouts over NFS.
332 .SP
333 .IX "Read-only mode"
334 .IP "" 0
335 \fB-n\fR
336 .IP "" 2
337 Do not change any files.  Attempt to execute the
338 \fBcvs_command\fR, but only to issue reports; do not remove,
339 update, or merge any existing files, or create any new files.
340 .SP
341 Note that \fBcvs\fR will not necessarily produce exactly
342 the same output as without \fB-n\fR.  In some cases
343 the output will be the same, but in other cases
344 \fBcvs\fR will skip some of the processing that would
345 have been required to produce the exact same output.
346 .SP
347 .IP "" 0
348 \fB-Q\fR
349 .IP "" 2
350 Cause the command to be really quiet; the command will only
351 generate output for serious problems.
352 .SP
353 .IP "" 0
354 \fB-q\fR
355 .IP "" 2
356 Cause the command to be somewhat quiet; informational messages,
357 such as reports of recursion through subdirectories, are
358 suppressed.
359 .SP
360 .IX "Read-only files, and -r"
361 .IP "" 0
362 \fB-r\fR
363 .IP "" 2
364 Make new working files read-only.  Same effect
365 as if the \fB$CVSREAD\fR environment variable is set
366 (see node `Environment variables\(aq in the CVS manual).  The default is to
367 make working files writable, unless watches are on
368 (see node `Watches\(aq in the CVS manual).
369 .SP
370 .IP "" 0
371 \fB-s \fIvariable\fB=\fIvalue\fB\fR
372 .IP "" 2
373 Set a user variable (see node `Variables\(aq in the CVS manual).
374 .SP
375 .IX "Trace"
376 .IP "" 0
377 \fB-t\fR
378 .IP "" 2
379 Trace program execution; display messages showing the steps of
380 \fBcvs\fR activity.  Particularly useful with \fB-n\fR to explore the
381 potential impact of an unfamiliar command.
382 .SP
383 .IP "" 0
384 \fB-v\fR
385 .IP "" 2
386 .IP "" 0
387 \fB--version\fR
388 .IP "" 2
389 Display version and copyright information for \fBcvs\fR.
390 .SP
391 .IX "CVSREAD, overriding"
392 .IX "Overriding CVSREAD"
393 .IP "" 0
394 \fB-w\fR
395 .IP "" 2
396 Make new working files read-write.  Overrides the
397 setting of the \fB$CVSREAD\fR environment variable.
398 Files are created read-write by default, unless \fB$CVSREAD\fR is
399 set or \fB-r\fR is given.
400 .SP
401 .IP "" 0
402 \fB-x\fR
403 .IP "" 2
404 .IX "Encryption"
405 Encrypt all communication between the client and the
406 server.  Only has an effect on the \fBcvs\fR client.  As
407 of this writing, this is only implemented when using a
408 GSSAPI connection (see node `GSSAPI authenticated\(aq in the CVS manual) or a
409 Kerberos connection (see node `Kerberos authenticated\(aq in the CVS manual).
410 Enabling encryption implies that message traffic is
411 also authenticated.  Encryption support is not
412 available by default; it must be enabled using a
413 special configure option, \fB--enable-encryption\fR,
414 when you build \fBcvs\fR.
415 .SP
416 .IP "" 0
417 \fB-z \fIgzip-level\fB\fR
418 .IP "" 2
419 .IX "Compression"
420 .IX "Gzip"
421 Set the compression level.
422 Valid levels are 1 (high speed, low compression) to
423 9 (low speed, high compression), or 0 to disable
424 compression (the default).
425 Only has an effect on the \fBcvs\fR client.
426 .SP
427 .SP
428 .SH "Common options"
429 .SS "Common command options"
430 .IX "Common options"
431 .IX "Right-hand options"
432 .SP
433 This section describes the \fBcommand_options\fR that
434 are available across several \fBcvs\fR commands.  These
435 options are always given to the right of
436 \fBcvs_command\fR. Not all
437 commands support all of these options; each option is
438 only supported for commands where it makes sense.
439 However, when a command has one of these options you
440 can almost always count on the same behavior of the
441 option as in other commands.  (Other command options,
442 which are listed with the individual commands, may have
443 different behavior from one \fBcvs\fR command to the other).
444 .SP
445 \fBNote: the \fBhistory\fB command is an exception; it supports
446 many options that conflict even with these standard options.\fR
447 .SP
448 .IX "Dates"
449 .IX "Time"
450 .IX "Specifying dates"
451 .IP "" 0
452 \fB-D \fIdate_spec\fB\fR
453 .IP "" 2
454 Use the most recent revision no later than \fIdate_spec\fR.
455 \fIdate_spec\fR is a single argument, a date description
456 specifying a date in the past.
457 .SP
458 The specification is \fIsticky\fR when you use it to make a
459 private copy of a source file; that is, when you get a working
460 file using \fB-D\fR, \fBcvs\fR records the date you specified, so that
461 further updates in the same directory will use the same date
462 (for more information on sticky tags/dates, see node `Sticky tags\(aq in the CVS manual).
463 .SP
464 \fB-D\fR is available with the \fBannotate\fR, \fBcheckout\fR,
465 \fBdiff\fR, \fBexport\fR, \fBhistory\fR, \fBls\fR,
466 \fBrdiff\fR, \fBrls\fR, \fBrtag\fR, \fBtag\fR, and \fBupdate\fR commands.
467 (The \fBhistory\fR command uses this option in a
468 slightly different way; see node `history options\(aq in the CVS manual).
469 .SP
470 For a complete description of the date formats accepted by \fBcvs\fR,
471 see node `Date input formats\(aq in the CVS manual.
472 .SP
473 Remember to quote the argument to the \fB-D\fR
474 flag so that your shell doesn\(aqt interpret spaces as
475 argument separators.  A command using the \fB-D\fR
476 flag can look like this:
477 .SP
478 .PD 0
479 .SP
480 .IP "" 4
481 $ cvs diff -D "1 hour ago" cvs.texinfo
482
483 .PD
484 .IP "" 2
485 .SP
486 .IX "Forcing a tag match"
487 .IP "" 0
488 \fB-f\fR
489 .IP "" 2
490 When you specify a particular date or tag to \fBcvs\fR commands, they
491 normally ignore files that do not contain the tag (or did not
492 exist prior to the date) that you specified.  Use the \fB-f\fR option
493 if you want files retrieved even when there is no match for the
494 tag or date.  (The most recent revision of the file
495 will be used).
496 .SP
497 Note that even with \fB-f\fR, a tag that you specify
498 must exist (that is, in some file, not necessary in
499 every file).  This is so that \fBcvs\fR will continue to
500 give an error if you mistype a tag name.
501 .SP
502 \fB-f\fR is available with these commands:
503 \fBannotate\fR, \fBcheckout\fR, \fBexport\fR,
504 \fBrdiff\fR, \fBrtag\fR, and \fBupdate\fR.
505 .SP
506 \fBWARNING:  The \fBcommit\fB and \fBremove\fB
507 commands also have a
508 \fB-f\fB option, but it has a different behavior for
509 those commands.  See see node `commit options\(aq in the CVS manual, and
510 see node `Removing files\(aq in the CVS manual.\fR
511 .SP
512 .IP "" 0
513 \fB-k \fIkflag\fB\fR
514 .IP "" 2
515 Override the default processing of RCS keywords other than
516 \fB-kb\fR.  see node `Keyword substitution\(aq in the CVS manual, for the meaning of
517 \fIkflag\fR.  Used with the \fBcheckout\fR and \fBupdate\fR
518 commands, your \fIkflag\fR specification is
519 \fIsticky\fR; that is, when you use this option
520 with a \fBcheckout\fR or \fBupdate\fR command,
521 \fBcvs\fR associates your selected \fIkflag\fR with any files
522 it operates on, and continues to use that \fIkflag\fR with future
523 commands on the same files until you specify otherwise.
524 .SP
525 The \fB-k\fR option is available with the \fBadd\fR,
526 \fBcheckout\fR, \fBdiff\fR, \fBexport\fR, \fBimport\fR and
527 \fBupdate\fR commands.
528 .SP
529 \fBWARNING: Prior to CVS version 1.12.2, the \fB-k\fB flag
530 overrode the \fB-kb\fB indication for a binary file.  This could
531 sometimes corrupt binary files.  see node `Merging and keywords\(aq in the CVS manual, for
532 more.\fR
533 .SP
534 .IP "" 0
535 \fB-l\fR
536 .IP "" 2
537 Local; run only in current working directory, rather than
538 recursing through subdirectories.
539 .SP
540 Available with the following commands: \fBannotate\fR, \fBcheckout\fR,
541 \fBcommit\fR, \fBdiff\fR, \fBedit\fR, \fBeditors\fR, \fBexport\fR,
542 \fBlog\fR, \fBrdiff\fR, \fBremove\fR, \fBrtag\fR,
543 \fBstatus\fR, \fBtag\fR, \fBunedit\fR, \fBupdate\fR, \fBwatch\fR,
544 and \fBwatchers\fR.
545 .SP
546 .IX "Editor, avoiding invocation of"
547 .IX "Avoiding editor invocation"
548 .IP "" 0
549 \fB-m \fImessage\fB\fR
550 .IP "" 2
551 Use \fImessage\fR as log information, instead of
552 invoking an editor.
553 .SP
554 Available with the following commands: \fBadd\fR,
555 \fBcommit\fR and \fBimport\fR.
556 .SP
557 .IP "" 0
558 \fB-n\fR
559 .IP "" 2
560 Do not run any tag program.  (A program can be
561 specified to run in the modules
562 database (see node `modules\(aq in the CVS manual); this option bypasses it).
563 .SP
564 \fBNote: this is not the same as the \fBcvs -n\fB
565 program option, which you can specify to the left of a cvs command!\fR
566 .SP
567 Available with the \fBcheckout\fR, \fBcommit\fR, \fBexport\fR,
568 and \fBrtag\fR commands.
569 .SP
570 .IP "" 0
571 \fB-P\fR
572 .IP "" 2
573 Prune empty directories.  See see node `Removing directories\(aq in the CVS manual.
574 .SP
575 .IP "" 0
576 \fB-p\fR
577 .IP "" 2
578 Pipe the files retrieved from the repository to standard output,
579 rather than writing them in the current directory.  Available
580 with the \fBcheckout\fR and \fBupdate\fR commands.
581 .SP
582 .IP "" 0
583 \fB-R\fR
584 .IP "" 2
585 Process directories recursively.  This is the default for all \fBcvs\fR
586 commands, with the exception of \fBls\fR & \fBrls\fR.
587 .SP
588 Available with the following commands: \fBannotate\fR, \fBcheckout\fR,
589 \fBcommit\fR, \fBdiff\fR, \fBedit\fR, \fBeditors\fR, \fBexport\fR,
590 \fBls\fR, \fBrdiff\fR, \fBremove\fR, \fBrls\fR, \fBrtag\fR,
591 \fBstatus\fR, \fBtag\fR, \fBunedit\fR, \fBupdate\fR, \fBwatch\fR,
592 and \fBwatchers\fR.
593 .SP
594 .IP "" 0
595 \fB-r \fItag\fB\fR
596 .IP "" 2
597 .IP "" 0
598 \fB-r \fItag\fB[:\fIdate\fB]\fR
599 .IP "" 2
600 .IX "HEAD, special tag"
601 .IX "BASE, special tag"
602 Use the revision specified by the \fItag\fR argument (and the \fIdate\fR
603 argument for the commands which accept it) instead of the
604 default \fIhead\fR revision.  As well as arbitrary tags defined
605 with the \fBtag\fR or \fBrtag\fR command, two special tags are
606 always available: \fBHEAD\fR refers to the most recent version
607 available in the repository, and \fBBASE\fR refers to the
608 revision you last checked out into the current working directory.
609 .SP
610 The tag specification is sticky when you use this
611 with \fBcheckout\fR or \fBupdate\fR to make your own
612 copy of a file: \fBcvs\fR remembers the tag and continues to use it on
613 future update commands, until you specify otherwise (for more information
614 on sticky tags/dates, see node `Sticky tags\(aq in the CVS manual).
615 .SP
616 The tag can be either a symbolic or numeric tag, as
617 described in see node `Tags\(aq in the CVS manual, or the name of a branch, as
618 described in see node `Branching and merging\(aq in the CVS manual.  When \fItag\fR is the name of a
619 branch, some commands accept the optional \fIdate\fR argument to specify
620 the revisions as of the given date on the branch.
621 .SP
622 Specifying the \fB-q\fR global option along with the
623 \fB-r\fR command option is often useful, to suppress
624 the warning messages when the \fBrcs\fR file
625 does not contain the specified tag.
626 .SP
627 \fBNote: this is not the same as the overall \fBcvs -r\fB option,
628 which you can specify to the left of a \fBcvs\fB command!\fR
629 .SP
630 \fB-r \fItag\fB\fR is available with the \fBcommit\fR and \fBhistory\fR
631 commands.
632 .SP
633 \fB-r \fItag\fB[:\fIdate\fB]\fR is available with the \fBannotate\fR,
634 \fBcheckout\fR, \fBdiff\fR, \fBexport\fR, \fBrdiff\fR, \fBrtag\fR,
635 and \fBupdate\fR commands.
636 .SP
637 .IP "" 0
638 \fB-W\fR
639 .IP "" 2
640 Specify file names that should be filtered.  You can
641 use this option repeatedly.  The spec can be a file
642 name pattern of the same type that you can specify in
643 the \fB.cvswrappers\fR file.
644 Available with the following commands: \fBimport\fR,
645 and \fBupdate\fR.
646 .SP
647 .SP
648 .SH "admin"
649 .SS "Administration"
650 .IX "Admin (subcommand)"
651 .SP
652 .IP "\(bu" 2
653 Requires: repository, working directory.
654 .IP "\(bu" 2
655 Changes: repository.
656 .IP "\(bu" 2
657 Synonym: rcs
658 .SP
659 This is the \fBcvs\fR interface to assorted
660 administrative facilities.  Some of them have
661 questionable usefulness for \fBcvs\fR but exist for
662 historical purposes.  Some of the questionable options
663 are likely to disappear in the future.  This command
664 \fIdoes\fR work recursively, so extreme care should be
665 used.
666 .SP
667 .IX "cvsadmin"
668 .IX "UserAdminOptions, in CVSROOT/config"
669 On unix, if there is a group named \fBcvsadmin\fR,
670 only members of that group can run \fBcvs admin\fR
671 commands, except for those specified using the
672 \fBUserAdminOptions\fR configuration option in the
673 \fBCVSROOT/config\fR file.  Options specified using
674 \fBUserAdminOptions\fR can be run by any user.  See
675 see node `config\(aq in the CVS manual for more on \fBUserAdminOptions\fR.
676 .SP
677 The \fBcvsadmin\fR group should exist on the server,
678 or any system running the non-client/server \fBcvs\fR.
679 To disallow \fBcvs admin\fR for all users, create a
680 group with no users in it.  On NT, the \fBcvsadmin\fR
681 feature does not exist and all users
682 can run \fBcvs admin\fR.
683 .SP
684 .SH "admin options"
685 .SP
686 Some of these options have questionable usefulness for
687 \fBcvs\fR but exist for historical purposes.  Some even
688 make it impossible to use \fBcvs\fR until you undo the
689 effect!
690 .SP
691 .IP "" 0
692 \fB-A\fIoldfile\fB\fR
693 .IP "" 2
694 Might not work together with \fBcvs\fR.  Append the
695 access list of \fIoldfile\fR to the access list of the
696 \fBrcs\fR file.
697 .SP
698 .IP "" 0
699 \fB-a\fIlogins\fB\fR
700 .IP "" 2
701 Might not work together with \fBcvs\fR.  Append the
702 login names appearing in the comma-separated list
703 \fIlogins\fR to the access list of the \fBrcs\fR file.
704 .SP
705 .IP "" 0
706 \fB-b[\fIrev\fB]\fR
707 .IP "" 2
708 Set the default branch to \fIrev\fR.  In \fBcvs\fR, you
709 normally do not manipulate default branches; sticky
710 tags (see node `Sticky tags\(aq in the CVS manual) are a better way to decide
711 which branch you want to work on.  There is one reason
712 to run \fBcvs admin -b\fR: to revert to the vendor\(aqs
713 version when using vendor branches (see node `Reverting
714 local changes\(aq in the CVS manual).
715 There can be no space between \fB-b\fR and its argument.
716 .SP
717 .IX "Comment leader"
718 .IP "" 0
719 \fB-c\fIstring\fB\fR
720 .IP "" 2
721 Sets the comment leader to \fIstring\fR.  The comment
722 leader is not used by current versions of \fBcvs\fR or
723 \fBrcs\fR 5.7.  Therefore, you can almost surely not
724 worry about it.  see node `Keyword substitution\(aq in the CVS manual.
725 .SP
726 .IP "" 0
727 \fB-e[\fIlogins\fB]\fR
728 .IP "" 2
729 Might not work together with \fBcvs\fR.  Erase the login
730 names appearing in the comma-separated list
731 \fIlogins\fR from the access list of the RCS file.  If
732 \fIlogins\fR is omitted, erase the entire access list.
733 There can be no space between \fB-e\fR and its argument.
734 .SP
735 .IP "" 0
736 \fB-I\fR
737 .IP "" 2
738 Run interactively, even if the standard input is not a
739 terminal.  This option does not work with the
740 client/server \fBcvs\fR and is likely to disappear in
741 a future release of \fBcvs\fR.
742 .SP
743 .IP "" 0
744 \fB-i\fR
745 .IP "" 2
746 Useless with \fBcvs\fR.  This creates and initializes a
747 new \fBrcs\fR file, without depositing a revision.  With
748 \fBcvs\fR, add files with the \fBcvs add\fR command
749 (see node `Adding files\(aq in the CVS manual).
750 .SP
751 .IP "" 0
752 \fB-k\fIsubst\fB\fR
753 .IP "" 2
754 Set the default keyword
755 substitution to \fIsubst\fR.  see node `Keyword
756 substitution\(aq in the CVS manual.  Giving an explicit \fB-k\fR option to
757 \fBcvs update\fR, \fBcvs export\fR, or \fBcvs
758 checkout\fR overrides this default.
759 .SP
760 .IP "" 0
761 \fB-l[\fIrev\fB]\fR
762 .IP "" 2
763 Lock the revision with number \fIrev\fR.  If a branch
764 is given, lock the latest revision on that branch.  If
765 \fIrev\fR is omitted, lock the latest revision on the
766 default branch.  There can be no space between
767 \fB-l\fR and its argument.
768 .SP
769 This can be used in conjunction with the
770 \fBrcslock.pl\fR script in the \fBcontrib\fR
771 directory of the \fBcvs\fR source distribution to
772 provide reserved checkouts (where only one user can be
773 editing a given file at a time).  See the comments in
774 that file for details (and see the \fBREADME\fR file
775 in that directory for disclaimers about the unsupported
776 nature of contrib).  According to comments in that
777 file, locking must set to strict (which is the default).
778 .SP
779 .IP "" 0
780 \fB-L\fR
781 .IP "" 2
782 Set locking to strict.  Strict locking means that the
783 owner of an RCS file is not exempt from locking for
784 checkin.  For use with \fBcvs\fR, strict locking must be
785 set; see the discussion under the \fB-l\fR option above.
786 .SP
787 .IX "Changing a log message"
788 .IX "Replacing a log message"
789 .IX "Correcting a log message"
790 .IX "Fixing a log message"
791 .IX "Log message, correcting"
792 .IP "" 0
793 \fB-m\fIrev\fB:\fImsg\fB\fR
794 .IP "" 2
795 Replace the log message of revision \fIrev\fR with
796 \fImsg\fR.
797 .SP
798 .IP "" 0
799 \fB-N\fIname\fB[:[\fIrev\fB]]\fR
800 .IP "" 2
801 Act like \fB-n\fR, except override any previous
802 assignment of \fIname\fR.  For use with magic branches,
803 see see node `Magic branch numbers\(aq in the CVS manual.
804 .SP
805 .IP "" 0
806 \fB-n\fIname\fB[:[\fIrev\fB]]\fR
807 .IP "" 2
808 Associate the symbolic name \fIname\fR with the branch
809 or revision \fIrev\fR.  It is normally better to use
810 \fBcvs tag\fR or \fBcvs rtag\fR instead.  Delete the
811 symbolic name if both \fB:\fR and \fIrev\fR are
812 omitted; otherwise, print an error message if
813 \fIname\fR is already associated with another number.
814 If \fIrev\fR is symbolic, it is expanded before
815 association.  A \fIrev\fR consisting of a branch number
816 followed by a \fB.\fR stands for the current latest
817 revision in the branch.  A \fB:\fR with an empty
818 \fIrev\fR stands for the current latest revision on the
819 default branch, normally the trunk.  For example,
820 \fBcvs admin -n\fIname\fB:\fR associates \fIname\fR with the
821 current latest revision of all the RCS files;
822 this contrasts with \fBcvs admin -n\fIname\fB:$\fR which
823 associates \fIname\fR with the revision numbers
824 extracted from keyword strings in the corresponding
825 working files.
826 .SP
827 .IX "Deleting revisions"
828 .IX "Outdating revisions"
829 .IX "Saving space"
830 .IP "" 0
831 \fB-o\fIrange\fB\fR
832 .IP "" 2
833 Deletes (\fIoutdates\fR) the revisions given by
834 \fIrange\fR.
835 .SP
836 Note that this command can be quite dangerous unless
837 you know \fIexactly\fR what you are doing (for example
838 see the warnings below about how the
839 \fIrev1\fR:\fIrev2\fR syntax is confusing).
840 .SP
841 If you are short on disc this option might help you.
842 But think twice before using it\(emthere is no way short
843 of restoring the latest backup to undo this command!
844 If you delete different revisions than you planned,
845 either due to carelessness or (heaven forbid) a \fBcvs\fR
846 bug, there is no opportunity to correct the error
847 before the revisions are deleted.  It probably would be
848 a good idea to experiment on a copy of the repository
849 first.
850 .SP
851 Specify \fIrange\fR in one of the following ways:
852 .SP
853 .IP "" 2
854 \fB\fIrev1\fB::\fIrev2\fB\fR
855 .IP "" 4
856 Collapse all revisions between rev1 and rev2, so that
857 \fBcvs\fR only stores the differences associated with going
858 from rev1 to rev2, not intermediate steps.  For
859 example, after \fB-o 1.3::1.5\fR one can retrieve
860 revision 1.3, revision 1.5, or the differences to get
861 from 1.3 to 1.5, but not the revision 1.4, or the
862 differences between 1.3 and 1.4.  Other examples:
863 \fB-o 1.3::1.4\fR and \fB-o 1.3::1.3\fR have no
864 effect, because there are no intermediate revisions to
865 remove.
866 .SP
867 .IP "" 2
868 \fB::\fIrev\fB\fR
869 .IP "" 4
870 Collapse revisions between the beginning of the branch
871 containing \fIrev\fR and \fIrev\fR itself.  The
872 branchpoint and \fIrev\fR are left intact.  For
873 example, \fB-o ::1.3.2.6\fR deletes revision 1.3.2.1,
874 revision 1.3.2.5, and everything in between, but leaves
875 1.3 and 1.3.2.6 intact.
876 .SP
877 .IP "" 2
878 \fB\fIrev\fB::\fR
879 .IP "" 4
880 Collapse revisions between \fIrev\fR and the end of the
881 branch containing \fIrev\fR.  Revision \fIrev\fR is
882 left intact but the head revision is deleted.
883 .SP
884 .IP "" 2
885 \fB\fIrev\fB\fR
886 .IP "" 4
887 Delete the revision \fIrev\fR.  For example, \fB-o
888 1.3\fR is equivalent to \fB-o 1.2::1.4\fR.
889 .SP
890 .IP "" 2
891 \fB\fIrev1\fB:\fIrev2\fB\fR
892 .IP "" 4
893 Delete the revisions from \fIrev1\fR to \fIrev2\fR,
894 inclusive, on the same branch.  One will not be able to
895 retrieve \fIrev1\fR or \fIrev2\fR or any of the
896 revisions in between.  For example, the command
897 \fBcvs admin -oR_1_01:R_1_02 \&.\fR is rarely useful.
898 It means to delete revisions up to, and including, the
899 tag R_1_02.  But beware!  If there are files that have not
900 changed between R_1_02 and R_1_03 the file will have
901 \fIthe same\fR numerical revision number assigned to
902 the tags R_1_02 and R_1_03.  So not only will it be
903 impossible to retrieve R_1_02; R_1_03 will also have to
904 be restored from the tapes!  In most cases you want to
905 specify \fIrev1\fR::\fIrev2\fR instead.
906 .SP
907 .IP "" 2
908 \fB:\fIrev\fB\fR
909 .IP "" 4
910 Delete revisions from the beginning of the
911 branch containing \fIrev\fR up to and including
912 \fIrev\fR.
913 .SP
914 .IP "" 2
915 \fB\fIrev\fB:\fR
916 .IP "" 4
917 Delete revisions from revision \fIrev\fR, including
918 \fIrev\fR itself, to the end of the branch containing
919 \fIrev\fR.
920 .SP
921 None of the revisions to be deleted may have
922 branches or locks.
923 .SP
924 If any of the revisions to be deleted have symbolic
925 names, and one specifies one of the \fB::\fR syntaxes,
926 then \fBcvs\fR will give an error and not delete any
927 revisions.  If you really want to delete both the
928 symbolic names and the revisions, first delete the
929 symbolic names with \fBcvs tag -d\fR, then run
930 \fBcvs admin -o\fR.  If one specifies the
931 non-\fB::\fR syntaxes, then \fBcvs\fR will delete the
932 revisions but leave the symbolic names pointing to
933 nonexistent revisions.  This behavior is preserved for
934 compatibility with previous versions of \fBcvs\fR, but
935 because it isn\(aqt very useful, in the future it may
936 change to be like the \fB::\fR case.
937 .SP
938 Due to the way \fBcvs\fR handles branches \fIrev\fR
939 cannot be specified symbolically if it is a branch.
940 see node `Magic branch numbers\(aq in the CVS manual, for an explanation.
941 .SP
942 Make sure that no-one has checked out a copy of the
943 revision you outdate.  Strange things will happen if he
944 starts to edit it and tries to check it back in.  For
945 this reason, this option is not a good way to take back
946 a bogus commit; commit a new revision undoing the bogus
947 change instead (see node `Merging two revisions\(aq in the CVS manual).
948 .SP
949 .IP "" 0
950 \fB-q\fR
951 .IP "" 2
952 Run quietly; do not print diagnostics.
953 .SP
954 .IP "" 0
955 \fB-s\fIstate\fB[:\fIrev\fB]\fR
956 .IP "" 2
957 Useful with \fBcvs\fR.  Set the state attribute of the
958 revision \fIrev\fR to \fIstate\fR.  If \fIrev\fR is a
959 branch number, assume the latest revision on that
960 branch.  If \fIrev\fR is omitted, assume the latest
961 revision on the default branch.  Any identifier is
962 acceptable for \fIstate\fR.  A useful set of states is
963 \fBExp\fR (for experimental), \fBStab\fR (for
964 stable), and \fBRel\fR (for released).  By default,
965 the state of a new revision is set to \fBExp\fR when
966 it is created.  The state is visible in the output from
967 \fIcvs log\fR (see node `log\(aq in the CVS manual), and in the
968 \fB$\fP\fPLog$\fR and \fB$\fP\fPState$\fR keywords
969 (see node `Keyword substitution\(aq in the CVS manual).  Note that \fBcvs\fR
970 uses the \fBdead\fR state for its own purposes; to
971 take a file to or from the \fBdead\fR state use
972 commands like \fBcvs remove\fR and \fBcvs add\fR, not
973 \fBcvs admin -s\fR.
974 .SP
975 .IP "" 0
976 \fB-t[\fIfile\fB]\fR
977 .IP "" 2
978 Useful with \fBcvs\fR.  Write descriptive text from the
979 contents of the named \fIfile\fR into the RCS file,
980 deleting the existing text.  The \fIfile\fR pathname
981 may not begin with \fB-\fR.  The descriptive text can be seen in the
982 output from \fBcvs log\fR (see node `log\(aq in the CVS manual).
983 There can be no space between \fB-t\fR and its argument.
984 .SP
985 If \fIfile\fR is omitted,
986 obtain the text from standard input, terminated by
987 end-of-file or by a line containing \fB.\fR by itself.
988 Prompt for the text if interaction is possible; see
989 \fB-I\fR.
990 .SP
991 .IP "" 0
992 \fB-t-\fIstring\fB\fR
993 .IP "" 2
994 Similar to \fB-t\fIfile\fB\fR. Write descriptive text
995 from the \fIstring\fR into the \fBrcs\fR file, deleting
996 the existing text.
997 There can be no space between \fB-t\fR and its argument.
998 .SP
999 .IP "" 0
1000 \fB-U\fR
1001 .IP "" 2
1002 Set locking to non-strict.  Non-strict locking means
1003 that the owner of a file need not lock a revision for
1004 checkin.  For use with \fBcvs\fR, strict locking must be
1005 set; see the discussion under the \fB-l\fR option
1006 above.
1007 .SP
1008 .IP "" 0
1009 \fB-u[\fIrev\fB]\fR
1010 .IP "" 2
1011 See the option \fB-l\fR above, for a discussion of
1012 using this option with \fBcvs\fR.  Unlock the revision
1013 with number \fIrev\fR.  If a branch is given, unlock
1014 the latest revision on that branch.  If \fIrev\fR is
1015 omitted, remove the latest lock held by the caller.
1016 Normally, only the locker of a revision may unlock it;
1017 somebody else unlocking a revision breaks the lock.
1018 This causes the original locker to be sent a \fBcommit\fR
1019 notification (see node `Getting Notified\(aq in the CVS manual).
1020 There can be no space between \fB-u\fR and its argument.
1021 .SP
1022 .IP "" 0
1023 \fB-V\fIn\fB\fR
1024 .IP "" 2
1025 In previous versions of \fBcvs\fR, this option meant to
1026 write an \fBrcs\fR file which would be acceptable to
1027 \fBrcs\fR version \fIn\fR, but it is now obsolete and
1028 specifying it will produce an error.
1029 .SP
1030 .IP "" 0
1031 \fB-x\fIsuffixes\fB\fR
1032 .IP "" 2
1033 In previous versions of \fBcvs\fR, this was documented
1034 as a way of specifying the names of the \fBrcs\fR
1035 files.  However, \fBcvs\fR has always required that the
1036 \fBrcs\fR files used by \fBcvs\fR end in \fB,v\fR, so
1037 this option has never done anything useful.
1038 .SP
1039 .SP
1040 .SH "annotate"
1041 .SS "What revision modified each line of a file?"
1042 .IX "annotate (subcommand)"
1043 .SP
1044 .IP "\(bu" 2
1045 Synopsis: annotate [options] files\&...
1046 .IP "\(bu" 2
1047 Requires: repository.
1048 .IP "\(bu" 2
1049 Changes: nothing.
1050 .SP
1051 For each file in \fIfiles\fR, print the head revision
1052 of the trunk, together with information on the last
1053 modification for each line.  
1054 .SP
1055 .SH "annotate options"
1056 .SP
1057 These standard options are supported by \fBannotate\fR
1058 (see node `Common options\(aq in the CVS manual, for a complete description of
1059 them):
1060 .SP
1061 .IP "" 0
1062 \fB-l\fR
1063 .IP "" 2
1064 Local directory only, no recursion.
1065 .SP
1066 .IP "" 0
1067 \fB-R\fR
1068 .IP "" 2
1069 Process directories recursively.
1070 .SP
1071 .IP "" 0
1072 \fB-f\fR
1073 .IP "" 2
1074 Use head revision if tag/date not found.
1075 .SP
1076 .IP "" 0
1077 \fB-F\fR
1078 .IP "" 2
1079 Annotate binary files.
1080 .SP
1081 .IP "" 0
1082 \fB-r \fItag\fB[:\fIdate\fB]\fR
1083 .IP "" 2
1084 Annotate file as of specified revision/tag or, when \fIdate\fR is specified
1085 and \fItag\fR is a branch tag, the version from the branch \fItag\fR as it
1086 existed on \fIdate\fR.  See see node `Common options\(aq in the CVS manual.
1087 .SP
1088 .IP "" 0
1089 \fB-D \fIdate\fB\fR
1090 .IP "" 2
1091 Annotate file as of specified date.
1092 .SP
1093 .SH "annotate example"
1094 .SP
1095 For example:
1096 .SP
1097 .PD 0
1098 .SP
1099 .IP "" 2
1100 $ cvs annotate ssfile
1101 .IP "" 2
1102 Annotations for ssfile
1103 .IP "" 2
1104 ***************
1105 .IP "" 2
1106 1.1          (mary     27-Mar-96): ssfile line 1
1107 .IP "" 2
1108 1.2          (joe      28-Mar-96): ssfile line 2
1109
1110 .PD
1111 .IP "" 0
1112 .SP
1113 The file \fBssfile\fR currently contains two lines.
1114 The \fBssfile line 1\fR line was checked in by
1115 \fBmary\fR on March 27.  Then, on March 28, \fBjoe\fR
1116 added a line \fBssfile line 2\fR, without modifying
1117 the \fBssfile line 1\fR line.  This report doesn\(aqt
1118 tell you anything about lines which have been deleted
1119 or replaced; you need to use \fBcvs diff\fR for that
1120 (see node `diff\(aq in the CVS manual).
1121 .SP
1122 The options to \fBcvs annotate\fR are listed in
1123 see node `Invoking CVS\(aq in the CVS manual, and can be used to select the files
1124 and revisions to annotate.  The options are described
1125 in more detail there and in see node `Common options\(aq in the CVS manual.
1126 .SP
1127 .SH "checkout"
1128 .SS "Check out sources for editing"
1129 .IX "checkout (subcommand)"
1130 .IX "co (subcommand)"
1131 .SP
1132 .IP "\(bu" 2
1133 Synopsis: checkout [options] modules\&...
1134 .IP "\(bu" 2
1135 Requires: repository.
1136 .IP "\(bu" 2
1137 Changes: working directory.
1138 .IP "\(bu" 2
1139 Synonyms: co, get
1140 .SP
1141 Create or update a working directory containing copies of the
1142 source files specified by \fImodules\fR.  You must execute
1143 \fBcheckout\fR before using most of the other \fBcvs\fR
1144 commands, since most of them operate on your working
1145 directory.
1146 .SP
1147 The \fImodules\fR are either
1148 symbolic names for some
1149 collection of source directories and files, or paths to
1150 directories or files in the repository.  The symbolic
1151 names are defined in the \fBmodules\fR file.
1152 see node `modules\(aq in the CVS manual.
1153 .SP
1154 Depending on the modules you specify, \fBcheckout\fR may
1155 recursively create directories and populate them with
1156 the appropriate source files.  You can then edit these
1157 source files at any time (regardless of whether other
1158 software developers are editing their own copies of the
1159 sources); update them to include new changes applied by
1160 others to the source repository; or commit your work as
1161 a permanent change to the source repository.
1162 .SP
1163 Note that \fBcheckout\fR is used to create
1164 directories.  The top-level directory created is always
1165 added to the directory where \fBcheckout\fR is
1166 invoked, and usually has the same name as the specified
1167 module.  In the case of a module alias, the created
1168 sub-directory may have a different name, but you can be
1169 sure that it will be a sub-directory, and that
1170 \fBcheckout\fR will show the relative path leading to
1171 each file as it is extracted into your private work
1172 area (unless you specify the \fB-Q\fR global option).
1173 .SP
1174 The files created by \fBcheckout\fR are created
1175 read-write, unless the \fB-r\fR option to \fBcvs\fR
1176 (see node `Global options\(aq in the CVS manual) is specified, the
1177 \fBCVSREAD\fR environment variable is specified
1178 (see node `Environment variables\(aq in the CVS manual), or a watch is in
1179 effect for that file (see node `Watches\(aq in the CVS manual).
1180 .SP
1181 Note that running \fBcheckout\fR on a directory that was already
1182 built by a prior \fBcheckout\fR is also permitted.
1183 This is similar to specifying the \fB-d\fR option
1184 to the \fBupdate\fR command in the sense that new
1185 directories that have been created in the repository
1186 will appear in your work area.
1187 However, \fBcheckout\fR takes a module name whereas
1188 \fBupdate\fR takes a directory name.  Also
1189 to use \fBcheckout\fR this way it must be run from the
1190 top level directory (where you originally ran
1191 \fBcheckout\fR from), so before you run
1192 \fBcheckout\fR to update an existing directory, don\(aqt
1193 forget to change your directory to the top level
1194 directory.
1195 .SP
1196 For the output produced by the \fBcheckout\fR command
1197 see see node `update output\(aq in the CVS manual.
1198 .SP
1199 .SH "checkout options"
1200 .SP
1201 These standard options are supported by \fBcheckout\fR
1202 (see node `Common options\(aq in the CVS manual, for a complete description of
1203 them):
1204 .SP
1205 .IP "" 0
1206 \fB-D \fIdate\fB\fR
1207 .IP "" 2
1208 Use the most recent revision no later than \fIdate\fR.
1209 This option is sticky, and implies \fB-P\fR.  See
1210 see node `Sticky tags\(aq in the CVS manual, for more information on sticky tags/dates.
1211 .SP
1212 .IP "" 0
1213 \fB-f\fR
1214 .IP "" 2
1215 Only useful with the \fB-D\fR or \fB-r\fR flags.  If no matching revision is
1216 found, retrieve the most recent revision (instead of ignoring the file).
1217 .SP
1218 .IP "" 0
1219 \fB-k \fIkflag\fB\fR
1220 .IP "" 2
1221 Process keywords according to \fIkflag\fR.  See
1222 see node `Keyword substitution\(aq in the CVS manual.
1223 This option is sticky; future updates of
1224 this file in this working directory will use the same
1225 \fIkflag\fR.  The \fBstatus\fR command can be viewed
1226 to see the sticky options.  See see node `Invoking CVS\(aq in the CVS manual, for
1227 more information on the \fBstatus\fR command.
1228 .SP
1229 .IP "" 0
1230 \fB-l\fR
1231 .IP "" 2
1232 Local; run only in current working directory.
1233 .SP
1234 .IP "" 0
1235 \fB-n\fR
1236 .IP "" 2
1237 Do not run any checkout program (as specified
1238 with the \fB-o\fR option in the modules file;
1239 see node `modules\(aq in the CVS manual).
1240 .SP
1241 .IP "" 0
1242 \fB-P\fR
1243 .IP "" 2
1244 Prune empty directories.  See see node `Moving directories\(aq in the CVS manual.
1245 .SP
1246 .IP "" 0
1247 \fB-p\fR
1248 .IP "" 2
1249 Pipe files to the standard output.
1250 .SP
1251 .IP "" 0
1252 \fB-R\fR
1253 .IP "" 2
1254 Checkout directories recursively.  This option is on by default.
1255 .SP
1256 .IP "" 0
1257 \fB-r \fItag\fB[:\fIdate\fB]\fR
1258 .IP "" 2
1259 Checkout the revision specified by \fItag\fR or, when \fIdate\fR is specified
1260 and \fItag\fR is a branch tag, the version from the branch \fItag\fR as it
1261 existed on \fIdate\fR.  This option is sticky, and implies \fB-P\fR.
1262 See see node `Sticky tags\(aq in the CVS manual, for more information on sticky tags/dates.  Also,
1263 see see node `Common options\(aq in the CVS manual.
1264 .SP
1265 In addition to those, you can use these special command
1266 options with \fBcheckout\fR:
1267 .SP
1268 .IP "" 0
1269 \fB-A\fR
1270 .IP "" 2
1271 Reset any sticky tags, dates, or \fB-k\fR options.
1272 See see node `Sticky tags\(aq in the CVS manual, for more information on sticky tags/dates.
1273 .SP
1274 .IP "" 0
1275 \fB-c\fR
1276 .IP "" 2
1277 Copy the module file, sorted, to the standard output,
1278 instead of creating or modifying any files or
1279 directories in your working directory.
1280 .SP
1281 .IP "" 0
1282 \fB-d \fIdir\fB\fR
1283 .IP "" 2
1284 Create a directory called \fIdir\fR for the working
1285 files, instead of using the module name.  In general,
1286 using this flag is equivalent to using \fBmkdir
1287 \fIdir\fB; cd \fIdir\fB\fR followed by the checkout
1288 command without the \fB-d\fR flag.
1289 .SP
1290 There is an important exception, however.  It is very
1291 convenient when checking out a single item to have the
1292 output appear in a directory that doesn\(aqt contain empty
1293 intermediate directories.  In this case \fIonly\fR,
1294 \fBcvs\fR tries to \`\`shorten\(aq\(aq pathnames to avoid those empty
1295 directories.
1296 .SP
1297 For example, given a module \fBfoo\fR that contains
1298 the file \fBbar.c\fR, the command \fBcvs co -d dir
1299 foo\fR will create directory \fBdir\fR and place
1300 \fBbar.c\fR inside.  Similarly, given a module
1301 \fBbar\fR which has subdirectory \fBbaz\fR wherein
1302 there is a file \fBquux.c\fR, the command \fBcvs co
1303 -d dir bar/baz\fR will create directory \fBdir\fR and
1304 place \fBquux.c\fR inside.
1305 .SP
1306 Using the \fB-N\fR flag will defeat this behavior.
1307 Given the same module definitions above, \fBcvs co
1308 -N -d dir foo\fR will create directories \fBdir/foo\fR
1309 and place \fBbar.c\fR inside, while \fBcvs co -N -d
1310 dir bar/baz\fR will create directories \fBdir/bar/baz\fR
1311 and place \fBquux.c\fR inside.
1312 .SP
1313 .IP "" 0
1314 \fB-j \fItag\fB\fR
1315 .IP "" 2
1316 With two \fB-j\fR options, merge changes from the
1317 revision specified with the first \fB-j\fR option to
1318 the revision specified with the second \fBj\fR option,
1319 into the working directory.
1320 .SP
1321 With one \fB-j\fR option, merge changes from the
1322 ancestor revision to the revision specified with the
1323 \fB-j\fR option, into the working directory.  The
1324 ancestor revision is the common ancestor of the
1325 revision which the working directory is based on, and
1326 the revision specified in the \fB-j\fR option.
1327 .SP
1328 In addition, each -j option can contain an optional
1329 date specification which, when used with branches, can
1330 limit the chosen revision to one within a specific
1331 date.  An optional date is specified by adding a colon
1332 (:) to the tag:
1333 \fB-j\fISymbolic_Tag\fB:\fIDate_Specifier\fB\fR.
1334 .SP
1335 see node `Branching and merging\(aq in the CVS manual.
1336 .SP
1337 .IP "" 0
1338 \fB-N\fR
1339 .IP "" 2
1340 Only useful together with \fB-d \fIdir\fB\fR.  With
1341 this option, \fBcvs\fR will not \`\`shorten\(aq\(aq module paths
1342 in your working directory when you check out a single
1343 module.  See the \fB-d\fR flag for examples and a
1344 discussion.
1345 .SP
1346 .IP "" 0
1347 \fB-s\fR
1348 .IP "" 2
1349 Like \fB-c\fR, but include the status of all modules,
1350 and sort it by the status string.  see node `modules\(aq in the CVS manual, for
1351 info about the \fB-s\fR option that is used inside the
1352 modules file to set the module status.
1353 .SP
1354 .SH "checkout examples"
1355 .SP
1356 Get a copy of the module \fBtc\fR:
1357 .SP
1358 .PD 0
1359 .SP
1360 .IP "" 2
1361 $ cvs checkout tc
1362
1363 .PD
1364 .IP "" 0
1365 .SP
1366 Get a copy of the module \fBtc\fR as it looked one day
1367 ago:
1368 .SP
1369 .PD 0
1370 .SP
1371 .IP "" 2
1372 $ cvs checkout -D yesterday tc
1373
1374 .PD
1375 .IP "" 0
1376 .SP
1377 .SH "commit"
1378 .SS "Check files into the repository"
1379 .IX "commit (subcommand)"
1380 .SP
1381 .IP "\(bu" 2
1382 Synopsis: commit [-lnRf] [-m \(aqlog_message\(aq |
1383 -F file] [-r revision] [files\&...]
1384 .IP "\(bu" 2
1385 Requires: working directory, repository.
1386 .IP "\(bu" 2
1387 Changes: repository.
1388 .IP "\(bu" 2
1389 Synonym: ci
1390 .SP
1391 Use \fBcommit\fR when you want to incorporate changes
1392 from your working source files into the source
1393 repository.
1394 .SP
1395 If you don\(aqt specify particular files to commit, all of
1396 the files in your working current directory are
1397 examined.  \fBcommit\fR is careful to change in the
1398 repository only those files that you have really
1399 changed.  By default (or if you explicitly specify the
1400 \fB-R\fR option), files in subdirectories are also
1401 examined and committed if they have changed; you can
1402 use the \fB-l\fR option to limit \fBcommit\fR to the
1403 current directory only.
1404 .SP
1405 \fBcommit\fR verifies that the selected files are up
1406 to date with the current revisions in the source
1407 repository; it will notify you, and exit without
1408 committing, if any of the specified files must be made
1409 current first with \fBupdate\fR (see node `update\(aq in the CVS manual).
1410 \fBcommit\fR does not call the \fBupdate\fR command
1411 for you, but rather leaves that for you to do when the
1412 time is right.
1413 .SP
1414 When all is well, an editor is invoked to allow you to
1415 enter a log message that will be written to one or more
1416 logging programs (see node `modules\(aq in the CVS manual, and see node `loginfo\(aq in the CVS manual)
1417 and placed in the \fBrcs\fR file inside the
1418 repository.  This log message can be retrieved with the
1419 \fBlog\fR command; see see node `log\(aq in the CVS manual.  You can specify the
1420 log message on the command line with the \fB-m
1421 \fImessage\fB\fR option, and thus avoid the editor invocation,
1422 or use the \fB-F \fIfile\fB\fR option to specify
1423 that the argument file contains the log message.
1424 .SP
1425 At \fBcommit\fR, a unique commitid is placed in the \fBrcs\fR
1426 file inside the repository. All files committed at once
1427 get the same commitid. The commitid can be retrieved with
1428 the \fBlog\fR and \fBstatus\fR command; see see node `log\(aq in the CVS manual,
1429 see node `File status\(aq in the CVS manual.
1430 .SP
1431 .SH "commit options"
1432 .SP
1433 These standard options are supported by \fBcommit\fR
1434 (see node `Common options\(aq in the CVS manual, for a complete description of
1435 them):
1436 .SP
1437 .IP "" 0
1438 \fB-l\fR
1439 .IP "" 2
1440 Local; run only in current working directory.
1441 .SP
1442 .IP "" 0
1443 \fB-R\fR
1444 .IP "" 2
1445 Commit directories recursively.  This is on by default.
1446 .SP
1447 .IP "" 0
1448 \fB-r \fIrevision\fB\fR
1449 .IP "" 2
1450 Commit to \fIrevision\fR.  \fIrevision\fR must be
1451 either a branch, or a revision on the main trunk that
1452 is higher than any existing revision number
1453 (see node `Assigning revisions\(aq in the CVS manual).  You
1454 cannot commit to a specific revision on a branch.
1455 .SP
1456 \fBcommit\fR also supports these options:
1457 .SP
1458 .IP "" 0
1459 \fB-c\fR
1460 .IP "" 2
1461 Refuse to commit files unless the user has registered a valid edit on the
1462 file via \fBcvs edit\fR.  This is most useful when \fBcommit -c\fR
1463 and \fBedit -c\fR have been placed in all \fB.cvsrc\fR files.
1464 A commit can be forced anyways by either regestering an edit retroactively
1465 via \fBcvs edit\fR (no changes to the file will be lost) or using the
1466 \fB-f\fR option to commit.  Support for \fBcommit -c\fR requires both
1467 client and a server versions 1.12.10 or greater.
1468 .SP
1469 .IP "" 0
1470 \fB-F \fIfile\fB\fR
1471 .IP "" 2
1472 Read the log message from \fIfile\fR, instead
1473 of invoking an editor.
1474 .SP
1475 .IP "" 0
1476 \fB-f\fR
1477 .IP "" 2
1478 Note that this is not the standard behavior of
1479 the \fB-f\fR option as defined in see node `Common options\(aq in the CVS manual.
1480 .SP
1481 Force \fBcvs\fR to commit a new revision even if you haven\(aqt
1482 made any changes to the file.  As of \fBcvs\fR version 1.12.10,
1483 it also causes the \fB-c\fR option to be ignored.  If the current revision
1484 of \fIfile\fR is 1.7, then the following two commands
1485 are equivalent:
1486 .SP
1487 .PD 0
1488 .SP
1489 .IP "" 4
1490 $ cvs commit -f \fIfile\fR
1491 .IP "" 4
1492 $ cvs commit -r 1.8 \fIfile\fR
1493
1494 .PD
1495 .IP "" 2
1496 .SP
1497 The \fB-f\fR option disables recursion (i.e., it
1498 implies \fB-l\fR).  To force \fBcvs\fR to commit a new
1499 revision for all files in all subdirectories, you must
1500 use \fB-f -R\fR.
1501 .SP
1502 .IP "" 0
1503 \fB-m \fImessage\fB\fR
1504 .IP "" 2
1505 Use \fImessage\fR as the log message, instead of
1506 invoking an editor.
1507 .SP
1508 .SH "commit examples"
1509 .SP
1510 .SS "Committing to a branch"
1511 .SP
1512 You can commit to a branch revision (one that has an
1513 even number of dots) with the \fB-r\fR option.  To
1514 create a branch revision, use the \fB-b\fR option
1515 of the \fBrtag\fR or \fBtag\fR commands
1516 (see node `Branching and merging\(aq in the CVS manual).  Then, either \fBcheckout\fR or
1517 \fBupdate\fR can be used to base your sources on the
1518 newly created branch.  From that point on, all
1519 \fBcommit\fR changes made within these working sources
1520 will be automatically added to a branch revision,
1521 thereby not disturbing main-line development in any
1522 way.  For example, if you had to create a patch to the
1523 1.2 version of the product, even though the 2.0 version
1524 is already under development, you might do:
1525 .SP
1526 .PD 0
1527 .SP
1528 .IP "" 2
1529 $ cvs rtag -b -r FCS1_2 FCS1_2_Patch product_module
1530 .IP "" 2
1531 $ cvs checkout -r FCS1_2_Patch product_module
1532 .IP "" 2
1533 $ cd product_module
1534 .IP "" 2
1535 [[ hack away ]]
1536 .IP "" 2
1537 $ cvs commit
1538
1539 .PD
1540 .IP "" 0
1541 .SP
1542 This works automatically since the \fB-r\fR option is
1543 sticky.
1544 .SP
1545 .SS "Creating the branch after editing"
1546 .SP
1547 Say you have been working on some extremely
1548 experimental software, based on whatever revision you
1549 happened to checkout last week.  If others in your
1550 group would like to work on this software with you, but
1551 without disturbing main-line development, you could
1552 commit your change to a new branch.  Others can then
1553 checkout your experimental stuff and utilize the full
1554 benefit of \fBcvs\fR conflict resolution.  The scenario might
1555 look like:
1556 .SP
1557 .PD 0
1558 .SP
1559 .IP "" 2
1560 [[ hacked sources are present ]]
1561 .IP "" 2
1562 $ cvs tag -b EXPR1
1563 .IP "" 2
1564 $ cvs update -r EXPR1
1565 .IP "" 2
1566 $ cvs commit
1567
1568 .PD
1569 .IP "" 0
1570 .SP
1571 The \fBupdate\fR command will make the \fB-r
1572 EXPR1\fR option sticky on all files.  Note that your
1573 changes to the files will never be removed by the
1574 \fBupdate\fR command.  The \fBcommit\fR will
1575 automatically commit to the correct branch, because the
1576 \fB-r\fR is sticky.  You could also do like this:
1577 .SP
1578 .PD 0
1579 .SP
1580 .IP "" 2
1581 [[ hacked sources are present ]]
1582 .IP "" 2
1583 $ cvs tag -b EXPR1
1584 .IP "" 2
1585 $ cvs commit -r EXPR1
1586
1587 .PD
1588 .IP "" 0
1589 .SP
1590 but then, only those files that were changed by you
1591 will have the \fB-r EXPR1\fR sticky flag.  If you hack
1592 away, and commit without specifying the \fB-r EXPR1\fR
1593 flag, some files may accidentally end up on the main
1594 trunk.
1595 .SP
1596 To work with you on the experimental change, others
1597 would simply do
1598 .SP
1599 .PD 0
1600 .SP
1601 .IP "" 2
1602 $ cvs checkout -r EXPR1 whatever_module
1603
1604 .PD
1605 .IP "" 0
1606 .SP
1607 .SH "diff"
1608 .SS "Show differences between revisions"
1609 .IX "diff (subcommand)"
1610 .SP
1611 .IP "\(bu" 2
1612 Synopsis: diff [-lR] [-k kflag] [format_options] [(-r rev1[:date1] | -D date1) [-r rev2[:date2] | -D date2]] [files\&...]
1613 .IP "\(bu" 2
1614 Requires: working directory, repository.
1615 .IP "\(bu" 2
1616 Changes: nothing.
1617 .SP
1618 The \fBdiff\fR command is used to compare different
1619 revisions of files.  The default action is to compare
1620 your working files with the revisions they were based
1621 on, and report any differences that are found.
1622 .SP
1623 If any file names are given, only those files are
1624 compared.  If any directories are given, all files
1625 under them will be compared.
1626 .SP
1627 The exit status for diff is different than for other
1628 \fBcvs\fR commands; for details see node `Exit status\(aq in the CVS manual.
1629 .SP
1630 .SH "diff options"
1631 .SP
1632 These standard options are supported by \fBdiff\fR
1633 (see node `Common options\(aq in the CVS manual, for a complete description of
1634 them):
1635 .SP
1636 .IP "" 0
1637 \fB-D \fIdate\fB\fR
1638 .IP "" 2
1639 Use the most recent revision no later than \fIdate\fR.
1640 See \fB-r\fR for how this affects the comparison.
1641 .SP
1642 .IP "" 0
1643 \fB-k \fIkflag\fB\fR
1644 .IP "" 2
1645 Process keywords according to \fIkflag\fR.  See
1646 see node `Keyword substitution\(aq in the CVS manual.
1647 .SP
1648 .IP "" 0
1649 \fB-l\fR
1650 .IP "" 2
1651 Local; run only in current working directory.
1652 .SP
1653 .IP "" 0
1654 \fB-R\fR
1655 .IP "" 2
1656 Examine directories recursively.  This option is on by
1657 default.
1658 .SP
1659 .IP "" 0
1660 \fB-r \fItag\fB[:\fIdate\fB]\fR
1661 .IP "" 2
1662 Compare with revision specified by \fItag\fR or, when \fIdate\fR is specified
1663 and \fItag\fR is a branch tag, the version from the branch \fItag\fR as it
1664 existed on \fIdate\fR.  Zero, one or two
1665 \fB-r\fR options can be present.  With no \fB-r\fR
1666 option, the working file will be compared with the
1667 revision it was based on.  With one \fB-r\fR, that
1668 revision will be compared to your current working file.
1669 With two \fB-r\fR options those two revisions will be
1670 compared (and your working file will not affect the
1671 outcome in any way).
1672 .SP
1673 One or both \fB-r\fR options can be replaced by a
1674 \fB-D \fIdate\fB\fR option, described above.
1675 .SP
1676 The following options specify the format of the
1677 output.  They have the same meaning as in GNU diff.
1678 Most options have two equivalent names, one of which is a single letter
1679 preceded by \fB-\fR, and the other of which is a long name preceded by
1680 \fB--\fR.
1681 .SP
1682 .IP "" 0
1683 \fB-\fIlines\fB\fR
1684 .IP "" 2
1685 Show \fIlines\fR (an integer) lines of context.  This option does not
1686 specify an output format by itself; it has no effect unless it is
1687 combined with \fB-c\fR or \fB-u\fR.  This option is obsolete.  For proper
1688 operation, \fBpatch\fR typically needs at least two lines of context.
1689 .SP
1690 .IP "" 0
1691 \fB-a\fR
1692 .IP "" 2
1693 Treat all files as text and compare them line-by-line, even if they
1694 do not seem to be text.
1695 .SP
1696 .IP "" 0
1697 \fB-b\fR
1698 .IP "" 2
1699 Ignore trailing white space and consider all other sequences of one or
1700 more white space characters to be equivalent.
1701 .SP
1702 .IP "" 0
1703 \fB-B\fR
1704 .IP "" 2
1705 Ignore changes that just insert or delete blank lines.
1706 .SP
1707 .IP "" 0
1708 \fB--binary\fR
1709 .IP "" 2
1710 Read and write data in binary mode.
1711 .SP
1712 .IP "" 0
1713 \fB--brief\fR
1714 .IP "" 2
1715 Report only whether the files differ, not the details of the
1716 differences.
1717 .SP
1718 .IP "" 0
1719 \fB-c\fR
1720 .IP "" 2
1721 Use the context output format.
1722 .SP
1723 .IP "" 0
1724 \fB-C \fIlines\fB\fR
1725 .IP "" 2
1726 .IP "" 0
1727 \fB--context\fR[\fB=\fIlines\fB\fR]\fB\fR
1728 .IP "" 2
1729 Use the context output format, showing \fIlines\fR (an integer) lines of
1730 context, or three if \fIlines\fR is not given.
1731 For proper operation, \fBpatch\fR typically needs at least two lines of
1732 context.
1733 .SP
1734 .IP "" 0
1735 \fB--changed-group-format=\fIformat\fB\fR
1736 .IP "" 2
1737 Use \fIformat\fR to output a line group containing differing lines from
1738 both files in if-then-else format.  see node `Line group formats\(aq in the CVS manual.
1739 .SP
1740 .IP "" 0
1741 \fB-d\fR
1742 .IP "" 2
1743 Change the algorithm to perhaps find a smaller set of changes.  This makes
1744 \fBdiff\fR slower (sometimes much slower).
1745 .SP
1746 .IP "" 0
1747 \fB-e\fR
1748 .IP "" 2
1749 .IP "" 0
1750 \fB--ed\fR
1751 .IP "" 2
1752 Make output that is a valid \fBed\fR script.
1753 .SP
1754 .IP "" 0
1755 \fB--expand-tabs\fR
1756 .IP "" 2
1757 Expand tabs to spaces in the output, to preserve the alignment of tabs
1758 in the input files.
1759 .SP
1760 .IP "" 0
1761 \fB-f\fR
1762 .IP "" 2
1763 Make output that looks vaguely like an \fBed\fR script but has changes
1764 in the order they appear in the file.
1765 .SP
1766 .IP "" 0
1767 \fB-F \fIregexp\fB\fR
1768 .IP "" 2
1769 In context and unified format, for each hunk of differences, show some
1770 of the last preceding line that matches \fIregexp\fR.
1771 .SP
1772 .IP "" 0
1773 \fB--forward-ed\fR
1774 .IP "" 2
1775 Make output that looks vaguely like an \fBed\fR script but has changes
1776 in the order they appear in the file.
1777 .SP
1778 .IP "" 0
1779 \fB-H\fR
1780 .IP "" 2
1781 Use heuristics to speed handling of large files that have numerous
1782 scattered small changes.
1783 .SP
1784 .IP "" 0
1785 \fB--horizon-lines=\fIlines\fB\fR
1786 .IP "" 2
1787 Do not discard the last \fIlines\fR lines of the common prefix
1788 and the first \fIlines\fR lines of the common suffix.
1789 .SP
1790 .IP "" 0
1791 \fB-i\fR
1792 .IP "" 2
1793 Ignore changes in case; consider upper- and lower-case letters
1794 equivalent.
1795 .SP
1796 .IP "" 0
1797 \fB-I \fIregexp\fB\fR
1798 .IP "" 2
1799 Ignore changes that just insert or delete lines that match \fIregexp\fR.
1800 .SP
1801 .IP "" 0
1802 \fB--ifdef=\fIname\fB\fR
1803 .IP "" 2
1804 Make merged if-then-else output using \fIname\fR.
1805 .SP
1806 .IP "" 0
1807 \fB--ignore-all-space\fR
1808 .IP "" 2
1809 Ignore white space when comparing lines.
1810 .SP
1811 .IP "" 0
1812 \fB--ignore-blank-lines\fR
1813 .IP "" 2
1814 Ignore changes that just insert or delete blank lines.
1815 .SP
1816 .IP "" 0
1817 \fB--ignore-case\fR
1818 .IP "" 2
1819 Ignore changes in case; consider upper- and lower-case to be the same.
1820 .SP
1821 .IP "" 0
1822 \fB--ignore-matching-lines=\fIregexp\fB\fR
1823 .IP "" 2
1824 Ignore changes that just insert or delete lines that match \fIregexp\fR.
1825 .SP
1826 .IP "" 0
1827 \fB--ignore-space-change\fR
1828 .IP "" 2
1829 Ignore trailing white space and consider all other sequences of one or
1830 more white space characters to be equivalent.
1831 .SP
1832 .IP "" 0
1833 \fB--initial-tab\fR
1834 .IP "" 2
1835 Output a tab rather than a space before the text of a line in normal or
1836 context format.  This causes the alignment of tabs in the line to look
1837 normal.
1838 .SP
1839 .IP "" 0
1840 \fB-L \fIlabel\fB\fR
1841 .IP "" 2
1842 Use \fIlabel\fR instead of the file name in the context format
1843 and unified format headers.
1844 .SP
1845 .IP "" 0
1846 \fB--label=\fIlabel\fB\fR
1847 .IP "" 2
1848 Use \fIlabel\fR instead of the file name in the context format
1849 and unified format headers.
1850 .SP
1851 .IP "" 0
1852 \fB--left-column\fR
1853 .IP "" 2
1854 Print only the left column of two common lines in side by side format.
1855 .SP
1856 .IP "" 0
1857 \fB--line-format=\fIformat\fB\fR
1858 .IP "" 2
1859 Use \fIformat\fR to output all input lines in if-then-else format.
1860 see node `Line formats\(aq in the CVS manual.
1861 .SP
1862 .IP "" 0
1863 \fB--minimal\fR
1864 .IP "" 2
1865 Change the algorithm to perhaps find a smaller set of changes.  This
1866 makes \fBdiff\fR slower (sometimes much slower).
1867 .SP
1868 .IP "" 0
1869 \fB-n\fR
1870 .IP "" 2
1871 Output RCS-format diffs; like \fB-f\fR except that each command
1872 specifies the number of lines affected.
1873 .SP
1874 .IP "" 0
1875 \fB-N\fR
1876 .IP "" 2
1877 .IP "" 0
1878 \fB--new-file\fR
1879 .IP "" 2
1880 In directory comparison, if a file is found in only one directory,
1881 treat it as present but empty in the other directory.
1882 .SP
1883 .IP "" 0
1884 \fB--new-group-format=\fIformat\fB\fR
1885 .IP "" 2
1886 Use \fIformat\fR to output a group of lines taken from just the second
1887 file in if-then-else format.  see node `Line group formats\(aq in the CVS manual.
1888 .SP
1889 .IP "" 0
1890 \fB--new-line-format=\fIformat\fB\fR
1891 .IP "" 2
1892 Use \fIformat\fR to output a line taken from just the second file in
1893 if-then-else format.  see node `Line formats\(aq in the CVS manual.
1894 .SP
1895 .IP "" 0
1896 \fB--old-group-format=\fIformat\fB\fR
1897 .IP "" 2
1898 Use \fIformat\fR to output a group of lines taken from just the first
1899 file in if-then-else format.  see node `Line group formats\(aq in the CVS manual.
1900 .SP
1901 .IP "" 0
1902 \fB--old-line-format=\fIformat\fB\fR
1903 .IP "" 2
1904 Use \fIformat\fR to output a line taken from just the first file in
1905 if-then-else format.  see node `Line formats\(aq in the CVS manual.
1906 .SP
1907 .IP "" 0
1908 \fB-p\fR
1909 .IP "" 2
1910 Show which C function each change is in.
1911 .SP
1912 .IP "" 0
1913 \fB--rcs\fR
1914 .IP "" 2
1915 Output RCS-format diffs; like \fB-f\fR except that each command
1916 specifies the number of lines affected.
1917 .SP
1918 .IP "" 0
1919 \fB--report-identical-files\fR
1920 .IP "" 2
1921 .IP "" 0
1922 \fB-s\fR
1923 .IP "" 2
1924 Report when two files are the same.
1925 .SP
1926 .IP "" 0
1927 \fB--show-c-function\fR
1928 .IP "" 2
1929 Show which C function each change is in.
1930 .SP
1931 .IP "" 0
1932 \fB--show-function-line=\fIregexp\fB\fR
1933 .IP "" 2
1934 In context and unified format, for each hunk of differences, show some
1935 of the last preceding line that matches \fIregexp\fR.
1936 .SP
1937 .IP "" 0
1938 \fB--side-by-side\fR
1939 .IP "" 2
1940 Use the side by side output format.
1941 .SP
1942 .IP "" 0
1943 \fB--speed-large-files\fR
1944 .IP "" 2
1945 Use heuristics to speed handling of large files that have numerous
1946 scattered small changes.
1947 .SP
1948 .IP "" 0
1949 \fB--suppress-common-lines\fR
1950 .IP "" 2
1951 Do not print common lines in side by side format.
1952 .SP
1953 .IP "" 0
1954 \fB-t\fR
1955 .IP "" 2
1956 Expand tabs to spaces in the output, to preserve the alignment of tabs
1957 in the input files.
1958 .SP
1959 .IP "" 0
1960 \fB-T\fR
1961 .IP "" 2
1962 Output a tab rather than a space before the text of a line in normal or
1963 context format.  This causes the alignment of tabs in the line to look
1964 normal.
1965 .SP
1966 .IP "" 0
1967 \fB--text\fR
1968 .IP "" 2
1969 Treat all files as text and compare them line-by-line, even if they
1970 do not appear to be text.
1971 .SP
1972 .IP "" 0
1973 \fB-u\fR
1974 .IP "" 2
1975 Use the unified output format.
1976 .SP
1977 .IP "" 0
1978 \fB--unchanged-group-format=\fIformat\fB\fR
1979 .IP "" 2
1980 Use \fIformat\fR to output a group of common lines taken from both files
1981 in if-then-else format.  see node `Line group formats\(aq in the CVS manual.
1982 .SP
1983 .IP "" 0
1984 \fB--unchanged-line-format=\fIformat\fB\fR
1985 .IP "" 2
1986 Use \fIformat\fR to output a line common to both files in if-then-else
1987 format.  see node `Line formats\(aq in the CVS manual.
1988 .SP
1989 .IP "" 0
1990 \fB-U \fIlines\fB\fR
1991 .IP "" 2
1992 .IP "" 0
1993 \fB--unified\fR[\fB=\fIlines\fB\fR]\fB\fR
1994 .IP "" 2
1995 Use the unified output format, showing \fIlines\fR (an integer) lines of
1996 context, or three if \fIlines\fR is not given.
1997 For proper operation, \fBpatch\fR typically needs at least two lines of
1998 context.
1999 .SP
2000 .IP "" 0
2001 \fB-w\fR
2002 .IP "" 2
2003 Ignore white space when comparing lines.
2004 .SP
2005 .IP "" 0
2006 \fB-W \fIcolumns\fB\fR
2007 .IP "" 2
2008 .IP "" 0
2009 \fB--width=\fIcolumns\fB\fR
2010 .IP "" 2
2011 Use an output width of \fIcolumns\fR in side by side format.
2012 .SP
2013 .IP "" 0
2014 \fB-y\fR
2015 .IP "" 2
2016 Use the side by side output format.
2017 .SP
2018 .SH "Line group formats"
2019 .SP
2020 Line group formats let you specify formats suitable for many
2021 applications that allow if-then-else input, including programming
2022 languages and text formatting languages.  A line group format specifies
2023 the output format for a contiguous group of similar lines.
2024 .SP
2025 For example, the following command compares the TeX file \fBmyfile\fR
2026 with the original version from the repository,
2027 and outputs a merged file in which old regions are
2028 surrounded by \fB\\begin{em}\fR-\fB\\end{em}\fR lines, and new
2029 regions are surrounded by \fB\\begin{bf}\fR-\fB\\end{bf}\fR lines.
2030 .SP
2031 .PD 0
2032 .SP
2033 .IP "" 2
2034 cvs diff \\
2035 .IP "" 2
2036    --old-group-format=\(aq\\begin{em}
2037 .IP "" 2
2038 %<\\end{em}
2039 .IP "" 2
2040 \(aq \\
2041 .IP "" 2
2042    --new-group-format=\(aq\\begin{bf}
2043 .IP "" 2
2044 %>\\end{bf}
2045 .IP "" 2
2046 \(aq \\
2047 .IP "" 2
2048    myfile
2049
2050 .PD
2051 .IP "" 0
2052 .SP
2053 The following command is equivalent to the above example, but it is a
2054 little more verbose, because it spells out the default line group formats.
2055 .SP
2056 .PD 0
2057 .SP
2058 .IP "" 2
2059 cvs diff \\
2060 .IP "" 2
2061    --old-group-format=\(aq\\begin{em}
2062 .IP "" 2
2063 %<\\end{em}
2064 .IP "" 2
2065 \(aq \\
2066 .IP "" 2
2067    --new-group-format=\(aq\\begin{bf}
2068 .IP "" 2
2069 %>\\end{bf}
2070 .IP "" 2
2071 \(aq \\
2072 .IP "" 2
2073    --unchanged-group-format=\(aq%=\(aq \\
2074 .IP "" 2
2075    --changed-group-format=\(aq\\begin{em}
2076 .IP "" 2
2077 %<\\end{em}
2078 .IP "" 2
2079 \\begin{bf}
2080 .IP "" 2
2081 %>\\end{bf}
2082 .IP "" 2
2083 \(aq \\
2084 .IP "" 2
2085    myfile
2086
2087 .PD
2088 .IP "" 0
2089 .SP
2090 Here is a more advanced example, which outputs a diff listing with
2091 headers containing line numbers in a \`\`plain English\(aq\(aq style.
2092 .SP
2093 .PD 0
2094 .SP
2095 .IP "" 2
2096 cvs diff \\
2097 .IP "" 2
2098    --unchanged-group-format=\(aq\(aq \\
2099 .IP "" 2
2100    --old-group-format=\(aq-------- %dn line%(n=1?:s) deleted at %df:
2101 .IP "" 2
2102 %<\(aq \\
2103 .IP "" 2
2104    --new-group-format=\(aq-------- %dN line%(N=1?:s) added after %de:
2105 .IP "" 2
2106 %>\(aq \\
2107 .IP "" 2
2108    --changed-group-format=\(aq-------- %dn line%(n=1?:s) changed at %df:
2109 .IP "" 2
2110 %<-------- to:
2111 .IP "" 2
2112 %>\(aq \\
2113 .IP "" 2
2114    myfile
2115
2116 .PD
2117 .IP "" 0
2118 .SP
2119 To specify a line group format, use one of the options
2120 listed below.  You can specify up to four line group formats, one for
2121 each kind of line group.  You should quote \fIformat\fR, because it
2122 typically contains shell metacharacters.
2123 .SP
2124 .IP "" 0
2125 \fB--old-group-format=\fIformat\fB\fR
2126 .IP "" 2
2127 These line groups are hunks containing only lines from the first file.
2128 The default old group format is the same as the changed group format if
2129 it is specified; otherwise it is a format that outputs the line group as-is.
2130 .SP
2131 .IP "" 0
2132 \fB--new-group-format=\fIformat\fB\fR
2133 .IP "" 2
2134 These line groups are hunks containing only lines from the second
2135 file.  The default new group format is same as the changed group
2136 format if it is specified; otherwise it is a format that outputs the
2137 line group as-is.
2138 .SP
2139 .IP "" 0
2140 \fB--changed-group-format=\fIformat\fB\fR
2141 .IP "" 2
2142 These line groups are hunks containing lines from both files.  The
2143 default changed group format is the concatenation of the old and new
2144 group formats.
2145 .SP
2146 .IP "" 0
2147 \fB--unchanged-group-format=\fIformat\fB\fR
2148 .IP "" 2
2149 These line groups contain lines common to both files.  The default
2150 unchanged group format is a format that outputs the line group as-is.
2151 .SP
2152 In a line group format, ordinary characters represent themselves;
2153 conversion specifications start with \fB%\fR and have one of the
2154 following forms.
2155 .SP
2156 .IP "" 0
2157 \fB%<\fR
2158 .IP "" 2
2159 stands for the lines from the first file, including the trailing newline.
2160 Each line is formatted according to the old line format (see node `Line formats\(aq in the CVS manual).
2161 .SP
2162 .IP "" 0
2163 \fB%>\fR
2164 .IP "" 2
2165 stands for the lines from the second file, including the trailing newline.
2166 Each line is formatted according to the new line format.
2167 .SP
2168 .IP "" 0
2169 \fB%=\fR
2170 .IP "" 2
2171 stands for the lines common to both files, including the trailing newline.
2172 Each line is formatted according to the unchanged line format.
2173 .SP
2174 .IP "" 0
2175 \fB%%\fR
2176 .IP "" 2
2177 stands for \fB%\fR.
2178 .SP
2179 .IP "" 0
2180 \fB%c\(aq\fIC\fB\(aq\fR
2181 .IP "" 2
2182 where \fIC\fR is a single character, stands for \fIC\fR.
2183 \fIC\fR may not be a backslash or an apostrophe.
2184 For example, \fB%c\(aq:\(aq\fR stands for a colon, even inside
2185 the then-part of an if-then-else format, which a colon would
2186 normally terminate.
2187 .SP
2188 .IP "" 0
2189 \fB%c\(aq\\\fIO\fB\(aq\fR
2190 .IP "" 2
2191 where \fIO\fR is a string of 1, 2, or 3 octal digits,
2192 stands for the character with octal code \fIO\fR.
2193 For example, \fB%c\(aq\\0\(aq\fR stands for a null character.
2194 .SP
2195 .IP "" 0
2196 \fB\fIF\fB\fIn\fB\fR
2197 .IP "" 2
2198 where \fIF\fR is a \fBprintf\fR conversion specification and \fIn\fR is one
2199 of the following letters, stands for \fIn\fR\(aqs value formatted with \fIF\fR.
2200 .SP
2201 .IP "" 2
2202 \fBe\fR
2203 .IP "" 4
2204 The line number of the line just before the group in the old file.
2205 .SP
2206 .IP "" 2
2207 \fBf\fR
2208 .IP "" 4
2209 The line number of the first line in the group in the old file;
2210 equals \fIe\fR + 1.
2211 .SP
2212 .IP "" 2
2213 \fBl\fR
2214 .IP "" 4
2215 The line number of the last line in the group in the old file.
2216 .SP
2217 .IP "" 2
2218 \fBm\fR
2219 .IP "" 4
2220 The line number of the line just after the group in the old file;
2221 equals \fIl\fR + 1.
2222 .SP
2223 .IP "" 2
2224 \fBn\fR
2225 .IP "" 4
2226 The number of lines in the group in the old file; equals \fIl\fR - \fIf\fR + 1.
2227 .SP
2228 .IP "" 2
2229 \fBE, F, L, M, N\fR
2230 .IP "" 4
2231 Likewise, for lines in the new file.
2232 .SP
2233 .SP
2234 The \fBprintf\fR conversion specification can be \fB%d\fR,
2235 \fB%o\fR, \fB%x\fR, or \fB%X\fR, specifying decimal, octal,
2236 lower case hexadecimal, or upper case hexadecimal output
2237 respectively.  After the \fB%\fR the following options can appear in
2238 sequence: a \fB-\fR specifying left-justification; an integer
2239 specifying the minimum field width; and a period followed by an
2240 optional integer specifying the minimum number of digits.
2241 For example, \fB%5dN\fR prints the number of new lines in the group
2242 in a field of width 5 characters, using the \fBprintf\fR format \fB"%5d"\fR.
2243 .SP
2244 .IP "" 0
2245 \fB(\fIA\fB=\fIB\fB?\fIT\fB:\fIE\fB)\fR
2246 .IP "" 2
2247 If \fIA\fR equals \fIB\fR then \fIT\fR else \fIE\fR.
2248 \fIA\fR and \fIB\fR are each either a decimal constant
2249 or a single letter interpreted as above.
2250 This format spec is equivalent to \fIT\fR if
2251 \fIA\fR\(aqs value equals \fIB\fR\(aqs; otherwise it is equivalent to \fIE\fR.
2252 .SP
2253 For example, \fB%(N=0?no:%dN) line%(N=1?:s)\fR is equivalent to
2254 \fBno lines\fR if \fIN\fR (the number of lines in the group in the
2255 new file) is 0, to \fB1 line\fR if \fIN\fR is 1, and to \fB%dN lines\fR
2256 otherwise.
2257 .SP
2258 .SH "Line formats"
2259 .SP
2260 Line formats control how each line taken from an input file is
2261 output as part of a line group in if-then-else format.
2262 .SP
2263 For example, the following command outputs text with a one-column
2264 change indicator to the left of the text.  The first column of output
2265 is \fB-\fR for deleted lines, \fB|\fR for added lines, and a space
2266 for unchanged lines.  The formats contain newline characters where
2267 newlines are desired on output.
2268 .SP
2269 .PD 0
2270 .SP
2271 .IP "" 2
2272 cvs diff \\
2273 .IP "" 2
2274    --old-line-format=\(aq-%l
2275 .IP "" 2
2276 \(aq \\
2277 .IP "" 2
2278    --new-line-format=\(aq|%l
2279 .IP "" 2
2280 \(aq \\
2281 .IP "" 2
2282    --unchanged-line-format=\(aq %l
2283 .IP "" 2
2284 \(aq \\
2285 .IP "" 2
2286    myfile
2287
2288 .PD
2289 .IP "" 0
2290 .SP
2291 To specify a line format, use one of the following options.  You should
2292 quote \fIformat\fR, since it often contains shell metacharacters.
2293 .SP
2294 .IP "" 0
2295 \fB--old-line-format=\fIformat\fB\fR
2296 .IP "" 2
2297 formats lines just from the first file.
2298 .SP
2299 .IP "" 0
2300 \fB--new-line-format=\fIformat\fB\fR
2301 .IP "" 2
2302 formats lines just from the second file.
2303 .SP
2304 .IP "" 0
2305 \fB--unchanged-line-format=\fIformat\fB\fR
2306 .IP "" 2
2307 formats lines common to both files.
2308 .SP
2309 .IP "" 0
2310 \fB--line-format=\fIformat\fB\fR
2311 .IP "" 2
2312 formats all lines; in effect, it sets all three above options simultaneously.
2313 .SP
2314 In a line format, ordinary characters represent themselves;
2315 conversion specifications start with \fB%\fR and have one of the
2316 following forms.
2317 .SP
2318 .IP "" 0
2319 \fB%l\fR
2320 .IP "" 2
2321 stands for the contents of the line, not counting its trailing
2322 newline (if any).  This format ignores whether the line is incomplete.
2323 .SP
2324 .IP "" 0
2325 \fB%L\fR
2326 .IP "" 2
2327 stands for the contents of the line, including its trailing newline
2328 (if any).  If a line is incomplete, this format preserves its
2329 incompleteness.
2330 .SP
2331 .IP "" 0
2332 \fB%%\fR
2333 .IP "" 2
2334 stands for \fB%\fR.
2335 .SP
2336 .IP "" 0
2337 \fB%c\(aq\fIC\fB\(aq\fR
2338 .IP "" 2
2339 where \fIC\fR is a single character, stands for \fIC\fR.
2340 \fIC\fR may not be a backslash or an apostrophe.
2341 For example, \fB%c\(aq:\(aq\fR stands for a colon.
2342 .SP
2343 .IP "" 0
2344 \fB%c\(aq\\\fIO\fB\(aq\fR
2345 .IP "" 2
2346 where \fIO\fR is a string of 1, 2, or 3 octal digits,
2347 stands for the character with octal code \fIO\fR.
2348 For example, \fB%c\(aq\\0\(aq\fR stands for a null character.
2349 .SP
2350 .IP "" 0
2351 \fB\fIF\fBn\fR
2352 .IP "" 2
2353 where \fIF\fR is a \fBprintf\fR conversion specification,
2354 stands for the line number formatted with \fIF\fR.
2355 For example, \fB%.5dn\fR prints the line number using the
2356 \fBprintf\fR format \fB"%.5d"\fR.  see node `Line group formats\(aq in the CVS manual, for
2357 more about printf conversion specifications.
2358 .SP
2359 .SP
2360 The default line format is \fB%l\fR followed by a newline character.
2361 .SP
2362 If the input contains tab characters and it is important that they line
2363 up on output, you should ensure that \fB%l\fR or \fB%L\fR in a line
2364 format is just after a tab stop (e.g. by preceding \fB%l\fR or
2365 \fB%L\fR with a tab character), or you should use the \fB-t\fR or
2366 \fB--expand-tabs\fR option.
2367 .SP
2368 Taken together, the line and line group formats let you specify many
2369 different formats.  For example, the following command uses a format
2370 similar to \fBdiff\fR\(aqs normal format.  You can tailor this command
2371 to get fine control over \fBdiff\fR\(aqs output.
2372 .SP
2373 .PD 0
2374 .SP
2375 .IP "" 2
2376 cvs diff \\
2377 .IP "" 2
2378    --old-line-format=\(aq< %l
2379 .IP "" 2
2380 \(aq \\
2381 .IP "" 2
2382    --new-line-format=\(aq> %l
2383 .IP "" 2
2384 \(aq \\
2385 .IP "" 2
2386    --old-group-format=\(aq%df%(f=l?:,%dl)d%dE
2387 .IP "" 2
2388 %<\(aq \\
2389 .IP "" 2
2390    --new-group-format=\(aq%dea%dF%(F=L?:,%dL)
2391 .IP "" 2
2392 %>\(aq \\
2393 .IP "" 2
2394    --changed-group-format=\(aq%df%(f=l?:,%dl)c%dF%(F=L?:,%dL)
2395 .IP "" 2
2396 %<\(em
2397 .IP "" 2
2398 %>\(aq \\
2399 .IP "" 2
2400    --unchanged-group-format=\(aq\(aq \\
2401 .IP "" 2
2402    myfile
2403
2404 .PD
2405 .IP "" 0
2406 .SP
2407 .SH "diff examples"
2408 .SP
2409 The following line produces a Unidiff (\fB-u\fR flag)
2410 between revision 1.14 and 1.19 of
2411 \fBbackend.c\fR.  Due to the \fB-kk\fR flag no
2412 keywords are substituted, so differences that only depend
2413 on keyword substitution are ignored.
2414 .SP
2415 .PD 0
2416 .SP
2417 .IP "" 2
2418 $ cvs diff -kk -u -r 1.14 -r 1.19 backend.c
2419
2420 .PD
2421 .IP "" 0
2422 .SP
2423 Suppose the experimental branch EXPR1 was based on a
2424 set of files tagged RELEASE_1_0.  To see what has
2425 happened on that branch, the following can be used:
2426 .SP
2427 .PD 0
2428 .SP
2429 .IP "" 2
2430 $ cvs diff -r RELEASE_1_0 -r EXPR1
2431
2432 .PD
2433 .IP "" 0
2434 .SP
2435 A command like this can be used to produce a context
2436 diff between two releases:
2437 .SP
2438 .PD 0
2439 .SP
2440 .IP "" 2
2441 $ cvs diff -c -r RELEASE_1_0 -r RELEASE_1_1 > diffs
2442
2443 .PD
2444 .IP "" 0
2445 .SP
2446 If you are maintaining ChangeLogs, a command like the following
2447 just before you commit your changes may help you write
2448 the ChangeLog entry.  All local modifications that have
2449 not yet been committed will be printed.
2450 .SP
2451 .PD 0
2452 .SP
2453 .IP "" 2
2454 $ cvs diff -u | less
2455
2456 .PD
2457 .IP "" 0
2458 .SP
2459 .SH "export"
2460 .SS "Export sources from CVS, similar to checkout"
2461 .IX "export (subcommand)"
2462 .SP
2463 .IP "\(bu" 2
2464 Synopsis: export [-flNnR] (-r rev[:date] | -D date) [-k subst] [-d dir] module\&...
2465 .IP "\(bu" 2
2466 Requires: repository.
2467 .IP "\(bu" 2
2468 Changes: current directory.
2469 .SP
2470 This command is a variant of \fBcheckout\fR; use it
2471 when you want a copy of the source for module without
2472 the \fBcvs\fR administrative directories.  For example, you
2473 might use \fBexport\fR to prepare source for shipment
2474 off-site.  This command requires that you specify a
2475 date or tag (with \fB-D\fR or \fB-r\fR), so that you
2476 can count on reproducing the source you ship to others
2477 (and thus it always prunes empty directories).
2478 .SP
2479 One often would like to use \fB-kv\fR with \fBcvs
2480 export\fR.  This causes any keywords to be
2481 expanded such that an import done at some other site
2482 will not lose the keyword revision information.  But be
2483 aware that doesn\(aqt handle an export containing binary
2484 files correctly.  Also be aware that after having used
2485 \fB-kv\fR, one can no longer use the \fBident\fR
2486 command (which is part of the \fBrcs\fR suite\(emsee
2487 ident(1)) which looks for keyword strings.  If
2488 you want to be able to use \fBident\fR you must not
2489 use \fB-kv\fR.
2490 .SP
2491 .SH "export options"
2492 .SP
2493 These standard options are supported by \fBexport\fR
2494 (see node `Common options\(aq in the CVS manual, for a complete description of
2495 them):
2496 .SP
2497 .IP "" 0
2498 \fB-D \fIdate\fB\fR
2499 .IP "" 2
2500 Use the most recent revision no later than \fIdate\fR.
2501 .SP
2502 .IP "" 0
2503 \fB-f\fR
2504 .IP "" 2
2505 If no matching revision is found, retrieve the most
2506 recent revision (instead of ignoring the file).
2507 .SP
2508 .IP "" 0
2509 \fB-l\fR
2510 .IP "" 2
2511 Local; run only in current working directory.
2512 .SP
2513 .IP "" 0
2514 \fB-n\fR
2515 .IP "" 2
2516 Do not run any checkout program.
2517 .SP
2518 .IP "" 0
2519 \fB-R\fR
2520 .IP "" 2
2521 Export directories recursively.  This is on by default.
2522 .SP
2523 .IP "" 0
2524 \fB-r \fItag\fB[:\fIdate\fB]\fR
2525 .IP "" 2
2526 Export the revision specified by \fItag\fR or, when \fIdate\fR is specified
2527 and \fItag\fR is a branch tag, the version from the branch \fItag\fR as it
2528 existed on \fIdate\fR.  See see node `Common options\(aq in the CVS manual.
2529 .SP
2530 In addition, these options (that are common to
2531 \fBcheckout\fR and \fBexport\fR) are also supported:
2532 .SP
2533 .IP "" 0
2534 \fB-d \fIdir\fB\fR
2535 .IP "" 2
2536 Create a directory called \fIdir\fR for the working
2537 files, instead of using the module name.
2538 see node `checkout options\(aq in the CVS manual, for complete details on how
2539 \fBcvs\fR handles this flag.
2540 .SP
2541 .IP "" 0
2542 \fB-k \fIsubst\fB\fR
2543 .IP "" 2
2544 Set keyword expansion mode (see node `Substitution modes\(aq in the CVS manual).
2545 .SP
2546 .IP "" 0
2547 \fB-N\fR
2548 .IP "" 2
2549 Only useful together with \fB-d \fIdir\fB\fR.
2550 see node `checkout options\(aq in the CVS manual, for complete details on how
2551 \fBcvs\fR handles this flag.
2552 .SP
2553 .SH "history"
2554 .SS "Show status of files and users"
2555 .IX "history (subcommand)"
2556 .SP
2557 .IP "\(bu" 2
2558 Synopsis:     history [-report] [-flags] [-options args] [files\&...]
2559 .IP "\(bu" 2
2560 Requires: the file \fB$CVSROOT/CVSROOT/history\fR
2561 .IP "\(bu" 2
2562 Changes: nothing.
2563 .SP
2564 \fBcvs\fR can keep a history file that tracks each use of the
2565 \fBcheckout\fR, \fBcommit\fR, \fBrtag\fR,
2566 \fBupdate\fR, and \fBrelease\fR commands.  You can
2567 use \fBhistory\fR to display this information in
2568 various formats.
2569 .SP
2570 Logging must be enabled by creating the file
2571 \fB$CVSROOT/CVSROOT/history\fR.
2572 .SP
2573 \fBNote: \fBhistory\fB uses \fB-f\fB, \fB-l\fB,
2574 \fB-n\fB, and \fB-p\fB in ways that conflict with the
2575 normal use inside \fBcvs\fB (see node `Common options\(aq in the CVS manual).\fR
2576 .SP
2577 .SH "history options"
2578 .SP
2579 Several options (shown above as \fB-report\fR)  control  what
2580 kind of report is generated:
2581 .SP
2582 .IP "" 0
2583 \fB-c\fR
2584 .IP "" 2
2585 Report on each time commit was used (i.e., each time
2586 the repository was modified).
2587 .SP
2588 .IP "" 0
2589 \fB-e\fR
2590 .IP "" 2
2591 Everything (all record types).  Equivalent to
2592 specifying \fB-x\fR with all record types.  Of course,
2593 \fB-e\fR will also include record types which are
2594 added in a future version of \fBcvs\fR; if you are
2595 writing a script which can only handle certain record
2596 types, you\(aqll want to specify \fB-x\fR.
2597 .SP
2598 .IP "" 0
2599 \fB-m \fImodule\fB\fR
2600 .IP "" 2
2601 Report on a particular module.  (You can meaningfully
2602 use \fB-m\fR more than once on the command line.)
2603 .SP
2604 .IP "" 0
2605 \fB-o\fR
2606 .IP "" 2
2607 Report on checked-out modules.  This is the default report type.
2608 .SP
2609 .IP "" 0
2610 \fB-T\fR
2611 .IP "" 2
2612 Report on all tags.
2613 .SP
2614 .IP "" 0
2615 \fB-x \fItype\fB\fR
2616 .IP "" 2
2617 Extract a particular set of record types \fItype\fR from the \fBcvs\fR
2618 history.  The types are indicated by single letters,
2619 which you may specify in combination.
2620 .SP
2621 Certain commands have a single record type:
2622 .SP
2623 .IP "" 2
2624 \fBF\fR
2625 .IP "" 4
2626 release
2627 .IP "" 2
2628 \fBO\fR
2629 .IP "" 4
2630 checkout
2631 .IP "" 2
2632 \fBE\fR
2633 .IP "" 4
2634 export
2635 .IP "" 2
2636 \fBT\fR
2637 .IP "" 4
2638 rtag
2639 .SP
2640 One of five record types may result from an update:
2641 .SP
2642 .IP "" 2
2643 \fBC\fR
2644 .IP "" 4
2645 A merge was necessary but collisions were
2646 detected (requiring manual merging).
2647 .IP "" 2
2648 \fBG\fR
2649 .IP "" 4
2650 A merge was necessary and it succeeded.
2651 .IP "" 2
2652 \fBU\fR
2653 .IP "" 4
2654 A working file was copied from the repository.
2655 .IP "" 2
2656 \fBP\fR
2657 .IP "" 4
2658 A working file was patched to match the repository.
2659 .IP "" 2
2660 \fBW\fR
2661 .IP "" 4
2662 The working copy of a file was deleted during
2663 update (because it was gone from the repository).
2664 .SP
2665 One of three record types results from commit:
2666 .SP
2667 .IP "" 2
2668 \fBA\fR
2669 .IP "" 4
2670 A file was added for the first time.
2671 .IP "" 2
2672 \fBM\fR
2673 .IP "" 4
2674 A file was modified.
2675 .IP "" 2
2676 \fBR\fR
2677 .IP "" 4
2678 A file was removed.
2679 .SP
2680 The options shown as \fB-flags\fR constrain or expand
2681 the report without requiring option arguments:
2682 .SP
2683 .IP "" 0
2684 \fB-a\fR
2685 .IP "" 2
2686 Show data for all users (the default is to show data
2687 only for the user executing \fBhistory\fR).
2688 .SP
2689 .IP "" 0
2690 \fB-l\fR
2691 .IP "" 2
2692 Show last modification only.
2693 .SP
2694 .IP "" 0
2695 \fB-w\fR
2696 .IP "" 2
2697 Show only the records for modifications done from the
2698 same working directory where \fBhistory\fR is
2699 executing.
2700 .SP
2701 The options shown as \fB-options \fIargs\fB\fR constrain the report
2702 based on an argument:
2703 .SP
2704 .IP "" 0
2705 \fB-b \fIstr\fB\fR
2706 .IP "" 2
2707 Show data back to a record containing  the  string
2708 \fIstr\fR  in  either the module name, the file name, or
2709 the repository path.
2710 .SP
2711 .IP "" 0
2712 \fB-D \fIdate\fB\fR
2713 .IP "" 2
2714 Show data since \fIdate\fR.  This is slightly different
2715 from the normal use of \fB-D \fIdate\fB\fR, which
2716 selects the newest revision older than \fIdate\fR.
2717 .SP
2718 .IP "" 0
2719 \fB-f \fIfile\fB\fR
2720 .IP "" 2
2721 Show data for a particular file
2722 (you can specify several \fB-f\fR options on the same command line).
2723 This is equivalent to specifying the file on the command line.
2724 .SP
2725 .IP "" 0
2726 \fB-n \fImodule\fB\fR
2727 .IP "" 2
2728 Show data for a particular module
2729 (you can specify several \fB-n\fR options on the same command line).
2730 .SP
2731 .IP "" 0
2732 \fB-p \fIrepository\fB\fR
2733 .IP "" 2
2734 Show data for a particular source repository  (you
2735 can specify several \fB-p\fR options on the same command
2736 line).
2737 .SP
2738 .IP "" 0
2739 \fB-r \fIrev\fB\fR
2740 .IP "" 2
2741 Show records referring to revisions since the revision
2742 or tag named \fIrev\fR appears in individual \fBrcs\fR
2743 files.  Each \fBrcs\fR file is searched for the revision or
2744 tag.
2745 .SP
2746 .IP "" 0
2747 \fB-t \fItag\fB\fR
2748 .IP "" 2
2749 Show records since tag \fItag\fR was last added to the
2750 history file.  This differs from the \fB-r\fR flag
2751 above in that it reads only the history file, not the
2752 \fBrcs\fR files, and is much faster.
2753 .SP
2754 .IP "" 0
2755 \fB-u \fIname\fB\fR
2756 .IP "" 2
2757 Show records for user \fIname\fR.
2758 .SP
2759 .IP "" 0
2760 \fB-z \fItimezone\fB\fR
2761 .IP "" 2
2762 Show times in the selected records using the specified
2763 time zone instead of UTC.
2764 .SP
2765 .SH "import"
2766 .SS "Import sources into CVS, using vendor branches"
2767 .IX "import (subcommand)"
2768 .SP
2769 .IP "\(bu" 2
2770 Synopsis: import [-options] repository vendortag releasetag\&...
2771 .IP "\(bu" 2
2772 Requires: Repository, source distribution directory.
2773 .IP "\(bu" 2
2774 Changes: repository.
2775 .SP
2776 Use \fBimport\fR to incorporate an entire source
2777 distribution from an outside source (e.g., a source
2778 vendor) into your source repository directory.  You can
2779 use this command both for initial creation of a
2780 repository, and for wholesale updates to the module
2781 from the outside source.  see node `Tracking sources\(aq in the CVS manual, for
2782 a discussion on this subject.
2783 .SP
2784 The \fIrepository\fR argument gives a directory name
2785 (or a path to a directory) under the \fBcvs\fR root directory
2786 for repositories; if the directory did not exist,
2787 import creates it.
2788 .SP
2789 When you use import for updates to source that has been
2790 modified in your source repository (since a prior
2791 import), it will notify you of any files that conflict
2792 in the two branches of development; use \fBcheckout
2793 -j\fR to reconcile the differences, as import instructs
2794 you to do.
2795 .SP
2796 If \fBcvs\fR decides a file should be ignored
2797 (see node `cvsignore\(aq in the CVS manual), it does not import it and prints
2798 \fBI \fR followed by the filename (see node `import output\(aq in the CVS manual, for a
2799 complete description of the output).
2800 .SP
2801 If the file \fB$CVSROOT/CVSROOT/cvswrappers\fR exists,
2802 any file whose names match the specifications in that
2803 file will be treated as packages and the appropriate
2804 filtering will be performed on the file/directory
2805 before being imported.  see node `Wrappers\(aq in the CVS manual.
2806 .SP
2807 The outside source is saved in a first-level
2808 branch, by default 1.1.1.  Updates are leaves of this
2809 branch; for example, files from the first imported
2810 collection of source will be revision 1.1.1.1, then
2811 files from the first imported update will be revision
2812 1.1.1.2, and so on.
2813 .SP
2814 At least three arguments are required.
2815 \fIrepository\fR is needed to identify the collection
2816 of source.  \fIvendortag\fR is a tag for the entire
2817 branch (e.g., for 1.1.1).  You must also specify at
2818 least one \fIreleasetag\fR to uniquely identify the files at
2819 the leaves created each time you execute \fBimport\fR.  The
2820 \fIreleasetag\fR should be new, not previously existing in the
2821 repository file, and uniquely identify the imported release,
2822 .SP
2823 Note that \fBimport\fR does \fInot\fR change the
2824 directory in which you invoke it.  In particular, it
2825 does not set up that directory as a \fBcvs\fR working
2826 directory; if you want to work with the sources import
2827 them first and then check them out into a different
2828 directory (see node `Getting the source\(aq in the CVS manual).
2829 .SP
2830 .SH "import options"
2831 .SP
2832 This standard option is supported by \fBimport\fR
2833 (see node `Common options\(aq in the CVS manual, for a complete description):
2834 .SP
2835 .IP "" 0
2836 \fB-m \fImessage\fB\fR
2837 .IP "" 2
2838 Use \fImessage\fR as log information, instead of
2839 invoking an editor.
2840 .SP
2841 There are the following additional special options.
2842 .SP
2843 .IP "" 0
2844 \fB-b \fIbranch\fB\fR
2845 .IP "" 2
2846 See see node `Multiple vendor branches\(aq in the CVS manual.
2847 .SP
2848 .IP "" 0
2849 \fB-k \fIsubst\fB\fR
2850 .IP "" 2
2851 Indicate the keyword expansion mode desired.  This
2852 setting will apply to all files created during the
2853 import, but not to any files that previously existed in
2854 the repository.  See see node `Substitution modes\(aq in the CVS manual, for a
2855 list of valid \fB-k\fR settings.
2856 .SP
2857 .IP "" 0
2858 \fB-I \fIname\fB\fR
2859 .IP "" 2
2860 Specify file names that should be ignored during
2861 import.  You can use this option repeatedly.  To avoid
2862 ignoring any files at all (even those ignored by
2863 default), specify \`-I !\(aq.
2864 .SP
2865 \fIname\fR can be a file name pattern of the same type
2866 that you can specify in the \fB.cvsignore\fR file.
2867 see node `cvsignore\(aq in the CVS manual.
2868 .SP
2869 .IP "" 0
2870 \fB-W \fIspec\fB\fR
2871 .IP "" 2
2872 Specify file names that should be filtered during
2873 import.  You can use this option repeatedly.
2874 .SP
2875 \fIspec\fR can be a file name pattern of the same type
2876 that you can specify in the \fB.cvswrappers\fR
2877 file. see node `Wrappers\(aq in the CVS manual.
2878 .SP
2879 .IP "" 0
2880 \fB-X\fR
2881 .IP "" 2
2882 Modify the algorithm used by \fBcvs\fR when importing new files
2883 so that new files do not immediately appear on the main trunk.
2884 .SP
2885 Specifically, this flag causes \fBcvs\fR to mark new files as
2886 if they were deleted on the main trunk, by taking the following
2887 steps for each file in addition to those normally taken on import:
2888 creating a new revision on the main trunk indicating that
2889 the new file is \fBdead\fR, resetting the new file\(aqs default branch,
2890 and placing the file in the Attic (see node `Attic\(aq in the CVS manual) directory.
2891 .SP
2892 Use of this option can be forced on a repository-wide basis
2893 by setting the \fBImportNewFilesToVendorBranchOnly\fR option in
2894 CVSROOT/config (see node `config\(aq in the CVS manual).
2895 .SP
2896 .SH "import output"
2897 .SP
2898 \fBimport\fR keeps you informed of its progress by printing a line
2899 for each file, preceded by one character indicating the status of the file:
2900 .SP
2901 .IP "" 0
2902 \fBU \fIfile\fB\fR
2903 .IP "" 2
2904 The file already exists in the repository and has not been locally
2905 modified; a new revision has been created (if necessary).
2906 .SP
2907 .IP "" 0
2908 \fBN \fIfile\fB\fR
2909 .IP "" 2
2910 The file is a new file which has been added to the repository.
2911 .SP
2912 .IP "" 0
2913 \fBC \fIfile\fB\fR
2914 .IP "" 2
2915 The file already exists in the repository but has been locally modified;
2916 you will have to merge the changes.
2917 .SP
2918 .IP "" 0
2919 \fBI \fIfile\fB\fR
2920 .IP "" 2
2921 The file is being ignored (see node `cvsignore\(aq in the CVS manual).
2922 .SP
2923 .IX "Symbolic link, importing"
2924 .IX "Link, symbolic, importing"
2925 .IP "" 0
2926 \fBL \fIfile\fB\fR
2927 .IP "" 2
2928 The file is a symbolic link; \fBcvs import\fR ignores symbolic links.
2929 People periodically suggest that this behavior should
2930 be changed, but if there is a consensus on what it
2931 should be changed to, it is not apparent.
2932 (Various options in the \fBmodules\fR file can be used
2933 to recreate symbolic links on checkout, update, etc.;
2934 see node `modules\(aq in the CVS manual.)
2935 .SP
2936 .SH "import examples"
2937 .SP
2938 See see node `Tracking sources\(aq in the CVS manual, and see node `From files\(aq in the CVS manual.
2939 .SP
2940 .SH "log"
2941 .SS "Print out log information for files"
2942 .IX "log (subcommand)"
2943 .SP
2944 .IP "\(bu" 2
2945 Synopsis: log [options] [files\&...]
2946 .IP "\(bu" 2
2947 Requires: repository, working directory.
2948 .IP "\(bu" 2
2949 Changes: nothing.
2950 .SP
2951 Display log information for files.  \fBlog\fR used to
2952 call the \fBrcs\fR utility \fBrlog\fR.  Although this
2953 is no longer true in the current sources, this history
2954 determines the format of the output and the options,
2955 which are not quite in the style of the other \fBcvs\fR
2956 commands.
2957 .SP
2958 .IX "Timezone, in output"
2959 .IX "Zone, time, in output"
2960 The output includes the location of the \fBrcs\fR file,
2961 the \fIhead\fR revision (the latest revision on the
2962 trunk), all symbolic names (tags) and some other
2963 things.  For each revision, the revision number, the
2964 date, the author, the number of lines added/deleted, the commitid
2965 and the log message are printed.  All dates are displayed
2966 in local time at the client. This is typically specified in
2967 the \fB$TZ\fR environment variable, which can be set to
2968 govern how \fBlog\fR displays dates.
2969 .SP
2970 \fBNote: \fBlog\fB uses \fB-R\fB in a way that conflicts
2971 with the normal use inside \fBcvs\fB (see node `Common options\(aq in the CVS manual).\fR
2972 .SP
2973 .SH "log options"
2974 .SP
2975 By default, \fBlog\fR prints all information that is
2976 available.  All other options restrict the output.  Note that the revision
2977 selection options (\fB-d\fR, \fB-r\fR, \fB-s\fR, and \fB-w\fR) have no
2978 effect, other than possibly causing a search for files in Attic directories,
2979 when used in conjunction with the options that restrict the output to only
2980 \fBlog\fR header fields (\fB-b\fR, \fB-h\fR, \fB-R\fR, and \fB-t\fR)
2981 unless the \fB-S\fR option is also specified.
2982 .SP
2983 .IP "" 0
2984 \fB-b\fR
2985 .IP "" 2
2986 Print information about the revisions on the default
2987 branch, normally the highest branch on the trunk.
2988 .SP
2989 .IP "" 0
2990 \fB-d \fIdates\fB\fR
2991 .IP "" 2
2992 Print information about revisions with a checkin
2993 date/time in the range given by the
2994 semicolon-separated list of dates.  The date formats
2995 accepted are those accepted by the \fB-D\fR option to
2996 many other \fBcvs\fR commands (see node `Common options\(aq in the CVS manual).
2997 Dates can be combined into ranges as follows:
2998 .SP
2999 .IP "" 2
3000 \fB\fId1\fB<\fId2\fB\fR
3001 .IP "" 4
3002 .IP "" 2
3003 \fB\fId2\fB>\fId1\fB\fR
3004 .IP "" 4
3005 Select the revisions that were deposited between
3006 \fId1\fR and \fId2\fR.
3007 .SP
3008 .IP "" 2
3009 \fB<\fId\fB\fR
3010 .IP "" 4
3011 .IP "" 2
3012 \fB\fId\fB>\fR
3013 .IP "" 4
3014 Select all revisions dated \fId\fR or earlier.
3015 .SP
3016 .IP "" 2
3017 \fB\fId\fB<\fR
3018 .IP "" 4
3019 .IP "" 2
3020 \fB>\fId\fB\fR
3021 .IP "" 4
3022 Select all revisions dated \fId\fR or later.
3023 .SP
3024 .IP "" 2
3025 \fB\fId\fB\fR
3026 .IP "" 4
3027 Select the single, latest revision dated \fId\fR or
3028 earlier.
3029 .SP
3030 The \fB>\fR or \fB<\fR characters may be followed by
3031 \fB=\fR to indicate an inclusive range rather than an
3032 exclusive one.
3033 .SP
3034 Note that the separator is a semicolon (;).
3035 .SP
3036 .IP "" 0
3037 \fB-h\fR
3038 .IP "" 2
3039 Print only the name of the \fBrcs\fR file, name
3040 of the file in the working directory, head,
3041 default branch, access list, locks, symbolic names, and
3042 suffix.
3043 .SP
3044 .IP "" 0
3045 \fB-l\fR
3046 .IP "" 2
3047 Local; run only in current working directory.  (Default
3048 is to run recursively).
3049 .SP
3050 .IP "" 0
3051 \fB-N\fR
3052 .IP "" 2
3053 Do not print the list of tags for this file.  This
3054 option can be very useful when your site uses a lot of
3055 tags, so rather than "more"\(aqing over 3 pages of tag
3056 information, the log information is presented without
3057 tags at all.
3058 .SP
3059 .IP "" 0
3060 \fB-R\fR
3061 .IP "" 2
3062 Print only the name of the \fBrcs\fR file.
3063 .SP
3064 .IP "" 0
3065 \fB-r\fIrevisions\fB\fR
3066 .IP "" 2
3067 Print information about revisions given in the
3068 comma-separated list \fIrevisions\fR of revisions and
3069 ranges.  The following table explains the available
3070 range formats:
3071 .SP
3072 .IP "" 2
3073 \fB\fIrev1\fB:\fIrev2\fB\fR
3074 .IP "" 4
3075 Revisions \fIrev1\fR to \fIrev2\fR (which must be on
3076 the same branch).
3077 .SP
3078 .IP "" 2
3079 \fB\fIrev1\fB::\fIrev2\fB\fR
3080 .IP "" 4
3081 The same, but excluding \fIrev1\fR.
3082 .SP
3083 .IP "" 2
3084 \fB:\fIrev\fB\fR
3085 .IP "" 4
3086 .IP "" 2
3087 \fB::\fIrev\fB\fR
3088 .IP "" 4
3089 Revisions from the beginning of the branch up to
3090 and including \fIrev\fR.
3091 .SP
3092 .IP "" 2
3093 \fB\fIrev\fB:\fR
3094 .IP "" 4
3095 Revisions starting with \fIrev\fR to the end of the
3096 branch containing \fIrev\fR.
3097 .SP
3098 .IP "" 2
3099 \fB\fIrev\fB::\fR
3100 .IP "" 4
3101 Revisions starting just after \fIrev\fR to the end of the
3102 branch containing \fIrev\fR.
3103 .SP
3104 .IP "" 2
3105 \fB\fIbranch\fB\fR
3106 .IP "" 4
3107 An argument that is a branch means all revisions on
3108 that branch.
3109 .SP
3110 .IP "" 2
3111 \fB\fIbranch1\fB:\fIbranch2\fB\fR
3112 .IP "" 4
3113 .IP "" 2
3114 \fB\fIbranch1\fB::\fIbranch2\fB\fR
3115 .IP "" 4
3116 A range of branches means all revisions
3117 on the branches in that range.
3118 .SP
3119 .IP "" 2
3120 \fB\fIbranch\fB.\fR
3121 .IP "" 4
3122 The latest revision in \fIbranch\fR.
3123 .SP
3124 A bare \fB-r\fR with no revisions means the latest
3125 revision on the default branch, normally the trunk.
3126 There can be no space between the \fB-r\fR option and
3127 its argument.
3128 .SP
3129 .IP "" 0
3130 \fB-S\fR
3131 .IP "" 2
3132 Suppress the header if no revisions are selected.
3133 .SP
3134 .IP "" 0
3135 \fB-s \fIstates\fB\fR
3136 .IP "" 2
3137 Print information about revisions whose state
3138 attributes match one of the states given in the
3139 comma-separated list \fIstates\fR.
3140 .SP
3141 .IP "" 0
3142 \fB-t\fR
3143 .IP "" 2
3144 Print the same as \fB-h\fR, plus the descriptive text.
3145 .SP
3146 .IP "" 0
3147 \fB-w\fIlogins\fB\fR
3148 .IP "" 2
3149 Print information about revisions checked in by users
3150 with login names appearing in the comma-separated list
3151 \fIlogins\fR.  If \fIlogins\fR is omitted, the user\(aqs
3152 login is assumed.  There can be no space between the
3153 \fB-w\fR option and its argument.
3154 .SP
3155 \fBlog\fR prints the intersection of the revisions
3156 selected with the options \fB-d\fR, \fB-s\fR, and
3157 \fB-w\fR, intersected with the union of the revisions
3158 selected by \fB-b\fR and \fB-r\fR.
3159 .SP
3160 .SH "log examples"
3161 .SP
3162 .IX "Timezone, in output"
3163 .IX "Zone, time, in output"
3164 Since \fBlog\fR shows dates in local time,
3165 you might want to see them in Coordinated Universal Time (UTC) or
3166 some other timezone.
3167 To do this you can set your \fB$TZ\fR environment
3168 variable before invoking \fBcvs\fR:
3169 .SP
3170 .PD 0
3171 .SP
3172 .IP "" 2
3173 $ TZ=UTC cvs log foo.c
3174 .IP "" 2
3175 $ TZ=EST cvs log bar.c
3176
3177 .PD
3178 .IP "" 0
3179 .SP
3180 (If you are using a \fBcsh\fR-style shell, like \fBtcsh\fR,
3181 you would need to prefix the examples above with \fBenv\fR.)
3182 .SP
3183 .SH "ls & rls"
3184 .IX "ls (subcommand)"
3185 .IX "rls (subcommand)"
3186 .SP
3187 .IP "\(bu" 2
3188 ls [-e | -l] [-RP] [-r tag[:date]] [-D date] [path\&...]
3189 .IP "\(bu" 2
3190 Requires: repository for \fBrls\fR, repository & working directory for
3191 \fBls\fR.
3192 .IP "\(bu" 2
3193 Changes: nothing.
3194 .IP "\(bu" 2
3195 Synonym: \fBdir\fR & \fBlist\fR are synonyms for \fBls\fR and \fBrdir\fR
3196 & \fBrlist\fR are synonyms for \fBrls\fR.
3197 .SP
3198 The \fBls\fR and \fBrls\fR commands are used to list
3199 files and directories in the repository.
3200 .SP
3201 By default \fBls\fR lists the files and directories
3202 that belong in your working directory, what would be
3203 there after an \fBupdate\fR.
3204 .SP
3205 By default \fBrls\fR lists the files and directories
3206 on the tip of the trunk in the topmost directory of the
3207 repository.
3208 .SP
3209 Both commands accept an optional list of file and
3210 directory names, relative to the working directory for
3211 \fBls\fR and the topmost directory of the repository
3212 for \fBrls\fR.  Neither is recursive by default.
3213 .SP
3214 .SH "ls & rls options"
3215 .SP
3216 These standard options are supported by \fBls\fR & \fBrls\fR:
3217 .SP
3218 .IP "" 0
3219 \fB-d\fR
3220 .IP "" 2
3221 Show dead revisions (with tag when specified).
3222 .SP
3223 .IP "" 0
3224 \fB-e\fR
3225 .IP "" 2
3226 Display in CVS/Entries format.  This format is meant to remain easily parsable
3227 by automation.
3228 .SP
3229 .IP "" 0
3230 \fB-l\fR
3231 .IP "" 2
3232 Display all details.
3233 .SP
3234 .IP "" 0
3235 \fB-P\fR
3236 .IP "" 2
3237 Don\(aqt list contents of empty directories when recursing.
3238 .SP
3239 .IP "" 0
3240 \fB-R\fR
3241 .IP "" 2
3242 List recursively.
3243 .SP
3244 .IP "" 0
3245 \fB-r \fItag\fB[:\fIdate\fB]\fR
3246 .IP "" 2
3247 Show files specified by \fItag\fR or, when \fIdate\fR is specified
3248 and \fItag\fR is a branch tag, the version from the branch \fItag\fR as it
3249 existed on \fIdate\fR.  See see node `Common options\(aq in the CVS manual.
3250 .SP
3251 .IP "" 0
3252 \fB-D \fIdate\fB\fR
3253 .IP "" 2
3254 Show files from date.
3255 .SP
3256 .SH "rls examples"
3257 .SP
3258 .PD 0
3259 .SP
3260 .IP "" 2
3261 $ cvs rls
3262 .IP "" 2
3263 cvs rls: Listing module: \`.\(aq
3264 .IP "" 2
3265 CVSROOT
3266 .IP "" 2
3267 first-dir
3268
3269 .PD
3270 .IP "" 0
3271 .SP
3272 .PD 0
3273 .SP
3274 .IP "" 2
3275 $ cvs rls CVSROOT
3276 .IP "" 2
3277 cvs rls: Listing module: \`CVSROOT\(aq
3278 .IP "" 2
3279 checkoutlist
3280 .IP "" 2
3281 commitinfo
3282 .IP "" 2
3283 config
3284 .IP "" 2
3285 cvswrappers
3286 .IP "" 2
3287 loginfo
3288 .IP "" 2
3289 modules
3290 .IP "" 2
3291 notify
3292 .IP "" 2
3293 rcsinfo
3294 .IP "" 2
3295 taginfo
3296 .IP "" 2
3297 verifymsg
3298 .SP
3299
3300 .PD
3301 .IP "" 0
3302 .SP
3303 .SH "rdiff"
3304 .SS "\(aqpatch\(aq format diffs between releases"
3305 .IX "rdiff (subcommand)"
3306 .SP
3307 .IP "\(bu" 2
3308 rdiff [-flags] [-V vn] (-r tag1[:date1] | -D date1) [-r tag2[:date2] | -D date2] modules\&...
3309 .IP "\(bu" 2
3310 Requires: repository.
3311 .IP "\(bu" 2
3312 Changes: nothing.
3313 .IP "\(bu" 2
3314 Synonym: patch
3315 .SP
3316 Builds a Larry Wall format patch(1) file between two
3317 releases, that can be fed directly into the \fBpatch\fR
3318 program to bring an old release up-to-date with the new
3319 release.  (This is one of the few \fBcvs\fR commands that
3320 operates directly from the repository, and doesn\(aqt
3321 require a prior checkout.) The diff output is sent to
3322 the standard output device.
3323 .SP
3324 You can specify (using the standard \fB-r\fR and
3325 \fB-D\fR options) any combination of one or two
3326 revisions or dates.  If only one revision or date is
3327 specified, the patch file reflects differences between
3328 that revision or date and the current head revisions in
3329 the \fBrcs\fR file.
3330 .SP
3331 Note that if the software release affected is contained
3332 in more than one directory, then it may be necessary to
3333 specify the \fB-p\fR option to the \fBpatch\fR command when
3334 patching the old sources, so that \fBpatch\fR is able to find
3335 the files that are located in other directories.
3336 .SP
3337 .SH "rdiff options"
3338 .SP
3339 These standard options are supported by \fBrdiff\fR
3340 (see node `Common options\(aq in the CVS manual, for a complete description of
3341 them):
3342 .SP
3343 .IP "" 0
3344 \fB-D \fIdate\fB\fR
3345 .IP "" 2
3346 Use the most recent revision no later than \fIdate\fR.
3347 .SP
3348 .IP "" 0
3349 \fB-f\fR
3350 .IP "" 2
3351 If no matching revision is found, retrieve the most
3352 recent revision (instead of ignoring the file).
3353 .SP
3354 .IP "" 0
3355 \fB-l\fR
3356 .IP "" 2
3357 Local; don\(aqt descend subdirectories.
3358 .SP
3359 .IP "" 0
3360 \fB-R\fR
3361 .IP "" 2
3362 Examine directories recursively.  This option is on by default.
3363 .SP
3364 .IP "" 0
3365 \fB-r \fItag\fB\fR
3366 .IP "" 2
3367 Use the revision specified by \fItag\fR, or when \fIdate\fR is specified
3368 and \fItag\fR is a branch tag, the version from the branch \fItag\fR as it
3369 existed on \fIdate\fR.  See see node `Common options\(aq in the CVS manual.
3370 .SP
3371 In addition to the above, these options are available:
3372 .SP
3373 .IP "" 0
3374 \fB-c\fR
3375 .IP "" 2
3376 Use the context diff format.  This is the default format.
3377 .SP
3378 .IP "" 0
3379 \fB-s\fR
3380 .IP "" 2
3381 Create a summary change report instead of a patch.  The
3382 summary includes information about files that were
3383 changed or added between the releases.  It is sent to
3384 the standard output device.  This is useful for finding
3385 out, for example, which files have changed between two
3386 dates or revisions.
3387 .SP
3388 .IP "" 0
3389 \fB-t\fR
3390 .IP "" 2
3391 A diff of the top two revisions is sent to the standard
3392 output device.  This is most useful for seeing what the
3393 last change to a file was.
3394 .SP
3395 .IP "" 0
3396 \fB-u\fR
3397 .IP "" 2
3398 Use the unidiff format for the context diffs.
3399 Remember that old versions
3400 of the \fBpatch\fR program can\(aqt handle the unidiff
3401 format, so if you plan to post this patch to the net
3402 you should probably not use \fB-u\fR.
3403 .SP
3404 .IP "" 0
3405 \fB-V \fIvn\fB\fR
3406 .IP "" 2
3407 Expand keywords according to the rules current in
3408 \fBrcs\fR version \fIvn\fR (the expansion format changed with
3409 \fBrcs\fR version 5).  Note that this option is no
3410 longer accepted.  \fBcvs\fR will always expand keywords the
3411 way that \fBrcs\fR version 5 does.
3412 .SP
3413 .SH "rdiff examples"
3414 .SP
3415 Suppose you receive mail from \fRfoo@example.net\fR asking for an
3416 update from release 1.2 to 1.4 of the tc compiler.  You
3417 have no such patches on hand, but with \fBcvs\fR that can
3418 easily be fixed with a command such as this:
3419 .SP
3420 .PD 0
3421 .SP
3422 .IP "" 2
3423 $ cvs rdiff -c -r FOO1_2 -r FOO1_4 tc | \\
3424 .IP "" 2
3425 $$ Mail -s \(aqThe patches you asked for\(aq foo@example.net
3426
3427 .PD
3428 .IP "" 0
3429 .SP
3430 Suppose you have made release 1.3, and forked a branch
3431 called \fBR_1_3fix\fR for bug fixes.  \fBR_1_3_1\fR
3432 corresponds to release 1.3.1, which was made some time
3433 ago.  Now, you want to see how much development has been
3434 done on the branch.  This command can be used:
3435 .SP
3436 .PD 0
3437 .SP
3438 .IP "" 2
3439 $ cvs patch -s -r R_1_3_1 -r R_1_3fix module-name
3440 .IP "" 2
3441 cvs rdiff: Diffing module-name
3442 .IP "" 2
3443 File ChangeLog,v changed from revision 1.52.2.5 to 1.52.2.6
3444 .IP "" 2
3445 File foo.c,v changed from revision 1.52.2.3 to 1.52.2.4
3446 .IP "" 2
3447 File bar.h,v changed from revision 1.29.2.1 to 1.2
3448
3449 .PD
3450 .IP "" 0
3451 .SP
3452 .SH "release"
3453 .SS "Indicate that a Module is no longer in use"
3454 .IX "release (subcommand)"
3455 .SP
3456 .IP "\(bu" 2
3457 release [-d] directories\&...
3458 .IP "\(bu" 2
3459 Requires: Working directory.
3460 .IP "\(bu" 2
3461 Changes: Working directory, history log.
3462 .SP
3463 This command is meant to safely cancel the effect of
3464 \fBcvs checkout\fR.  Since \fBcvs\fR doesn\(aqt lock files, it
3465 isn\(aqt strictly necessary to use this command.  You can
3466 always simply delete your working directory, if you
3467 like; but you risk losing changes you may have
3468 forgotten, and you leave no trace in the \fBcvs\fR history
3469 file (see node `history file\(aq in the CVS manual) that you\(aqve abandoned your
3470 checkout.
3471 .SP
3472 Use \fBcvs release\fR to avoid these problems.  This
3473 command checks that no uncommitted changes are
3474 present; that you are executing it from immediately
3475 above a \fBcvs\fR working directory; and that the repository
3476 recorded for your files is the same as the repository
3477 defined in the module database.
3478 .SP
3479 If all these conditions are true, \fBcvs release\fR
3480 leaves a record of its execution (attesting to your
3481 intentionally abandoning your checkout) in the \fBcvs\fR
3482 history log.
3483 .SP
3484 .SH "release options"
3485 .SP
3486 The \fBrelease\fR command supports one command option:
3487 .SP
3488 .IP "" 0
3489 \fB-d\fR
3490 .IP "" 2
3491 Delete your working copy of the file if the release
3492 succeeds.  If this flag is not given your files will
3493 remain in your working directory.
3494 .SP
3495 \fBWARNING:  The \fBrelease\fB command deletes
3496 all directories and files recursively.  This
3497 has the very serious side-effect that any directory
3498 that you have created inside your checked-out sources,
3499 and not added to the repository (using the \fBadd\fB
3500 command; see node `Adding files\(aq in the CVS manual) will be silently deleted\(emeven
3501 if it is non-empty!\fR
3502 .SP
3503 .SH "release output"
3504 .SP
3505 Before \fBrelease\fR releases your sources it will
3506 print a one-line message for any file that is not
3507 up-to-date.
3508 .SP
3509 .IP "" 0
3510 \fBU \fIfile\fB\fR
3511 .IP "" 2
3512 .IP "" 0
3513 \fBP \fIfile\fB\fR
3514 .IP "" 2
3515 There exists a newer revision of this file in the
3516 repository, and you have not modified your local copy
3517 of the file (\fBU\fR and \fBP\fR mean the same thing).
3518 .SP
3519 .IP "" 0
3520 \fBA \fIfile\fB\fR
3521 .IP "" 2
3522 The file has been added to your private copy of the
3523 sources, but has not yet been committed to the
3524 repository.  If you delete your copy of the sources
3525 this file will be lost.
3526 .SP
3527 .IP "" 0
3528 \fBR \fIfile\fB\fR
3529 .IP "" 2
3530 The file has been removed from your private copy of the
3531 sources, but has not yet been removed from the
3532 repository, since you have not yet committed the
3533 removal.  see node `commit\(aq in the CVS manual.
3534 .SP
3535 .IP "" 0
3536 \fBM \fIfile\fB\fR
3537 .IP "" 2
3538 The file is modified in your working directory.  There
3539 might also be a newer revision inside the repository.
3540 .SP
3541 .IP "" 0
3542 \fB? \fIfile\fB\fR
3543 .IP "" 2
3544 \fIfile\fR is in your working directory, but does not
3545 correspond to anything in the source repository, and is
3546 not in the list of files for \fBcvs\fR to ignore (see the
3547 description of the \fB-I\fR option, and
3548 see node `cvsignore\(aq in the CVS manual).  If you remove your working
3549 sources, this file will be lost.
3550 .SP
3551 .SH "release examples"
3552 .SP
3553 Release the \fBtc\fR directory, and delete your local working copy
3554 of the files.
3555 .SP
3556 .PD 0
3557 .SP
3558 .IP "" 2
3559 $ cd \&..         # \fRYou must stand immediately above the\fR
3560 .IP "" 2
3561                 # \fRsources when you issue \fBcvs release\fR.\fR
3562 .IP "" 2
3563 $ cvs release -d tc
3564 .IP "" 2
3565 You have [0] altered files in this repository.
3566 .IP "" 2
3567 Are you sure you want to release (and delete) directory \`tc\(aq: y
3568 .IP "" 2
3569 $
3570
3571 .PD
3572 .IP "" 0
3573 .SP
3574 .SH "update"
3575 .SS "Bring work tree in sync with repository"
3576 .IX "update (subcommand)"
3577 .SP
3578 .IP "\(bu" 2
3579 update [-ACdflPpR] [-I name] [-j rev [-j rev]] [-k kflag] [-r tag[:date] | -D date] [-W spec] files\&...
3580 .IP "\(bu" 2
3581 Requires: repository, working directory.
3582 .IP "\(bu" 2
3583 Changes: working directory.
3584 .SP
3585 After you\(aqve run checkout to create your private copy
3586 of source from the common repository, other developers
3587 will continue changing the central source.  From time
3588 to time, when it is convenient in your development
3589 process, you can use the \fBupdate\fR command from
3590 within your working directory to reconcile your work
3591 with any revisions applied to the source repository
3592 since your last checkout or update.  Without the \fB-C\fR
3593 option, \fBupdate\fR will also merge any differences
3594 between the local copy of files and their base revisions
3595 into any destination revisions specified with \fB-r\fR,
3596 \fB-D\fR, or \fB-A\fR.
3597 .SP
3598 .SH "update options"
3599 .SP
3600 These standard options are available with \fBupdate\fR
3601 (see node `Common options\(aq in the CVS manual, for a complete description of
3602 them):
3603 .SP
3604 .IP "" 0
3605 \fB-D date\fR
3606 .IP "" 2
3607 Use the most recent revision no later than \fIdate\fR.
3608 This option is sticky, and implies \fB-P\fR.
3609 See see node `Sticky tags\(aq in the CVS manual, for more information on sticky tags/dates.
3610 .SP
3611 .IP "" 0
3612 \fB-f\fR
3613 .IP "" 2
3614 Only useful with the \fB-D\fR or \fB-r\fR flags.  If no matching revision
3615 is found, retrieve the most recent revision (instead of ignoring the file).
3616 .SP
3617 .IP "" 0
3618 \fB-k \fIkflag\fB\fR
3619 .IP "" 2
3620 Process keywords according to \fIkflag\fR.  See
3621 see node `Keyword substitution\(aq in the CVS manual.
3622 This option is sticky; future updates of
3623 this file in this working directory will use the same
3624 \fIkflag\fR.  The \fBstatus\fR command can be viewed
3625 to see the sticky options.  See see node `Invoking CVS\(aq in the CVS manual, for
3626 more information on the \fBstatus\fR command.
3627 .SP
3628 .IP "" 0
3629 \fB-l\fR
3630 .IP "" 2
3631 Local; run only in current working directory.  see node `Recursive behavior\(aq in the CVS manual.
3632 .SP
3633 .IP "" 0
3634 \fB-P\fR
3635 .IP "" 2
3636 Prune empty directories.  See see node `Moving directories\(aq in the CVS manual.
3637 .SP
3638 .IP "" 0
3639 \fB-p\fR
3640 .IP "" 2
3641 Pipe files to the standard output.
3642 .SP
3643 .IP "" 0
3644 \fB-R\fR
3645 .IP "" 2
3646 Update directories recursively (default).  see node `Recursive
3647 behavior\(aq in the CVS manual.
3648 .SP
3649 .IP "" 0
3650 \fB-r \fItag\fB[:\fIdate\fB]\fR
3651 .IP "" 2
3652 Retrieve the revisions specified by \fItag\fR or, when \fIdate\fR is specified
3653 and \fItag\fR is a branch tag, the version from the branch \fItag\fR as it
3654 existed on \fIdate\fR.  This option is sticky, and implies \fB-P\fR.
3655 See see node `Sticky tags\(aq in the CVS manual, for more information on sticky tags/dates. Also
3656 see see node `Common options\(aq in the CVS manual.
3657 .SP
3658 These special options are also available with
3659 \fBupdate\fR.
3660 .SP
3661 .IP "" 0
3662 \fB-A\fR
3663 .IP "" 2
3664 Reset any sticky tags, dates, or \fB-k\fR options.
3665 See see node `Sticky tags\(aq in the CVS manual, for more information on sticky tags/dates.
3666 .SP
3667 .IP "" 0
3668 \fB-C\fR
3669 .IP "" 2
3670 Overwrite locally modified files with clean copies from
3671 the repository (the modified file is saved in
3672 \fB.#\fIfile\fB.\fIrevision\fB\fR, however).
3673 .SP
3674 .IP "" 0
3675 \fB-d\fR
3676 .IP "" 2
3677 Create any directories that exist in the repository if
3678 they\(aqre missing from the working directory.  Normally,
3679 \fBupdate\fR acts only on directories and files that
3680 were already enrolled in your working directory.
3681 .SP
3682 This is useful for updating directories that were
3683 created in the repository since the initial checkout;
3684 but it has an unfortunate side effect.  If you
3685 deliberately avoided certain directories in the
3686 repository when you created your working directory
3687 (either through use of a module name or by listing
3688 explicitly the files and directories you wanted on the
3689 command line), then updating with \fB-d\fR will create
3690 those directories, which may not be what you want.
3691 .SP
3692 .IP "" 0
3693 \fB-I \fIname\fB\fR
3694 .IP "" 2
3695 Ignore files whose names match \fIname\fR (in your
3696 working directory) during the update.  You can specify
3697 \fB-I\fR more than once on the command line to specify
3698 several files to ignore.  Use \fB-I !\fR to avoid
3699 ignoring any files at all.  see node `cvsignore\(aq in the CVS manual, for other
3700 ways to make \fBcvs\fR ignore some files.
3701 .SP
3702 .IP "" 0
3703 \fB-W\fIspec\fB\fR
3704 .IP "" 2
3705 Specify file names that should be filtered during
3706 update.  You can use this option repeatedly.
3707 .SP
3708 \fIspec\fR can be a file name pattern of the same type
3709 that you can specify in the \fB.cvswrappers\fR
3710 file. see node `Wrappers\(aq in the CVS manual.
3711 .SP
3712 .IP "" 0
3713 \fB-j\fIrevision\fB\fR
3714 .IP "" 2
3715 With two \fB-j\fR options, merge changes from the
3716 revision specified with the first \fB-j\fR option to
3717 the revision specified with the second \fBj\fR option,
3718 into the working directory.
3719 .SP
3720 With one \fB-j\fR option, merge changes from the
3721 ancestor revision to the revision specified with the
3722 \fB-j\fR option, into the working directory.  The
3723 ancestor revision is the common ancestor of the
3724 revision which the working directory is based on, and
3725 the revision specified in the \fB-j\fR option.
3726 .SP
3727 Note that using a single \fB-j \fItagname\fB\fR option rather than
3728 \fB-j \fIbranchname\fB\fR to merge changes from a branch will
3729 often not remove files which were removed on the branch.
3730 see node `Merging adds and removals\(aq in the CVS manual, for more.
3731 .SP
3732 In addition, each \fB-j\fR option can contain an optional
3733 date specification which, when used with branches, can
3734 limit the chosen revision to one within a specific
3735 date.  An optional date is specified by adding a colon
3736 (:) to the tag:
3737 \fB-j\fISymbolic_Tag\fB:\fIDate_Specifier\fB\fR.
3738 .SP
3739 see node `Branching and merging\(aq in the CVS manual.
3740 .SP
3741 .SP
3742 .SH "update output"
3743 .SP
3744 \fBupdate\fR and \fBcheckout\fR keep you informed of
3745 their progress by printing a line for each file, preceded
3746 by one character indicating the status of the file:
3747 .SP
3748 .IP "" 0
3749 \fBU \fIfile\fB\fR
3750 .IP "" 2
3751 The file was brought up to date with respect to the
3752 repository.  This is done for any file that exists in
3753 the repository but not in your source, and for files
3754 that you haven\(aqt changed but are not the most recent
3755 versions available in the repository.
3756 .SP
3757 .IP "" 0
3758 \fBP \fIfile\fB\fR
3759 .IP "" 2
3760 Like \fBU\fR, but the \fBcvs\fR server sends a patch instead of an entire
3761 file.  This accomplishes the same thing as \fBU\fR using less bandwidth.
3762 .SP
3763 .IP "" 0
3764 \fBA \fIfile\fB\fR
3765 .IP "" 2
3766 The file has been added to your private copy of the
3767 sources, and will be added to the source repository
3768 when you run \fBcommit\fR on the file.  This is a
3769 reminder to you that the file needs to be committed.
3770 .SP
3771 .IP "" 0
3772 \fBR \fIfile\fB\fR
3773 .IP "" 2
3774 The file has been removed from your private copy of the
3775 sources, and will be removed from the source repository
3776 when you run \fBcommit\fR on the file.  This is a
3777 reminder to you that the file needs to be committed.
3778 .SP
3779 .IP "" 0
3780 \fBM \fIfile\fB\fR
3781 .IP "" 2
3782 The file is modified in  your  working  directory.
3783 .SP
3784 \fBM\fR can indicate one of two states for a file
3785 you\(aqre working on: either there were no modifications
3786 to the same file in the repository, so that your file
3787 remains as you last saw it; or there were modifications
3788 in the repository as well as in your copy, but they
3789 were merged successfully, without conflict, in your
3790 working directory.
3791 .SP
3792 \fBcvs\fR will print some messages if it merges your work,
3793 and a backup copy of your working file (as it looked
3794 before you ran \fBupdate\fR) will be made.  The exact
3795 name of that file is printed while \fBupdate\fR runs.
3796 .SP
3797 .IP "" 0
3798 \fBC \fIfile\fB\fR
3799 .IP "" 2
3800 .IX "\&.# files"
3801 .IX "__ files (VMS)"
3802 A conflict was detected while trying to merge your
3803 changes to \fIfile\fR with changes from the source
3804 repository.  \fIfile\fR (the copy in your working
3805 directory) is now the result of attempting to merge
3806 the two revisions; an unmodified copy of your file
3807 is also in your working directory, with the name
3808 \fB.#\fIfile\fB.\fIrevision\fB\fR where \fIrevision\fR
3809 is the revision that your modified file started
3810 from.  Resolve the conflict as described in
3811 see node `Conflicts example\(aq in the CVS manual.
3812 (Note that some systems automatically purge
3813 files that begin with \fB.#\fR if they have not been
3814 accessed for a few days.  If you intend to keep a copy
3815 of your original file, it is a very good idea to rename
3816 it.)  Under \fBvms\fR, the file name starts with
3817 \fB__\fR rather than \fB.#\fR.
3818 .SP
3819 .IP "" 0
3820 \fB? \fIfile\fB\fR
3821 .IP "" 2
3822 \fIfile\fR is in your working directory, but does not
3823 correspond to anything in the source repository, and is
3824 not in the list of files for \fBcvs\fR to ignore (see the
3825 description of the \fB-I\fR option, and
3826 see node `cvsignore\(aq in the CVS manual).
3827 .SH "AUTHORS"
3828 .TP
3829 Dick Grune
3830 Original author of the
3831 .B cvs
3832 shell script version posted to
3833 .B comp.sources.unix
3834 in the volume6 release of December, 1986.
3835 Credited with much of the
3836 .B cvs
3837 conflict resolution algorithms.
3838 .TP
3839 Brian Berliner
3840 Coder and designer of the
3841 .B cvs
3842 program itself in April, 1989, based on the original work done by Dick.
3843 .TP
3844 Jeff Polk
3845 Helped Brian with the design of the
3846 .B cvs
3847 module and vendor branch support and author of the
3848 .BR checkin ( 1 )
3849 shell script (the ancestor of \fBcvs import\fP).
3850 .TP
3851 Larry Jones, Derek R. Price, and Mark D. Baushke
3852 Have helped maintain
3853 .B cvs
3854 for many years.
3855 .TP
3856 And many others too numerous to mention here.
3857 .SH "SEE ALSO"
3858 The most comprehensive manual for CVS is
3859 Version Management with CVS by Per Cederqvist et al.  Depending on
3860 your system, you may be able to get it with the
3861 .B info CVS
3862 command or it may be available as cvs.pdf (Portable Document Format),
3863 cvs.ps (PostScript), cvs.texinfo (Texinfo source), or cvs.html.
3864 .SP
3865 For CVS updates, more information on documentation, software related
3866 to CVS, development of CVS, and more, see:
3867 .in +1i
3868 .SP
3869 .PD 0
3870 .IP "" 4
3871 .B http://cvshome.org
3872 .in -1i
3873 .SP
3874 .BR ci ( 1 ),
3875 .BR co ( 1 ),
3876 .BR cvs ( 5 ),
3877 .BR cvsbug ( 8 ),
3878 .BR diff ( 1 ),
3879 .BR grep ( 1 ),
3880 .BR patch ( 1 ),
3881 .BR rcs ( 1 ),
3882 .BR rcsdiff ( 1 ),
3883 .BR rcsmerge ( 1 ),
3884 .BR rlog ( 1 ).