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