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