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