]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/cvs/man/cvs.1
This commit was generated by cvs2svn to compensate for changes in r172668,
[FreeBSD/FreeBSD.git] / contrib / cvs / man / cvs.1
1 .\" $FreeBSD$
2 .de Id
3 .ds Rv \\$3
4 .ds Dt \\$4
5 ..
6 .TH CVS 1 "\*(Dt"
7 .\" Full space in nroff; half space in troff
8 .de SP
9 .if n .sp
10 .if t .sp .5
11 ..
12 .\" quoted command
13 .de `
14 .RB ` "\|\\$1\|" '\\$2
15 ..
16 .SH "NAME"
17 cvs \- Concurrent Versions System
18 .SH "SYNOPSIS"
19 .TP
20 \fBcvs\fP [ \fIcvs_options\fP ]
21 .I cvs_command
22 [
23 .I command_options
24 ] [
25 .I command_args
26 ]
27 .SH "NOTE"
28 This manpage is a summary of some of the features of
29 .B cvs
30 but it may no longer be kept up-to-date.  
31 For more current and in-depth documentation, please consult the
32 Cederqvist manual (via the
33 .B info cvs
34 command or otherwise,
35 as described in the SEE ALSO section of this manpage).
36 .SH "DESCRIPTION"
37 .IX "revision control system" "\fLcvs\fR"
38 .IX  cvs  ""  "\fLcvs\fP \- concurrent versions system"
39 .IX  "concurrent versions system \- \fLcvs\fP"
40 .IX  "release control system"  "cvs command"  ""  "\fLcvs\fP \- concurrent versions system"
41 .IX  "source control system"  "cvs command"  ""  "\fLcvs\fP \- concurrent versions system"
42 .IX  revisions  "cvs command"  ""  "\fLcvs\fP \- source control"
43 CVS is a version control system, which allows you to keep old versions
44 of files (usually source code), keep a log of who, when, and why
45 changes occurred, etc., like RCS or SCCS.  Unlike the simpler systems,
46 CVS does not just operate on one file at a time or one directory at a
47 time, but operates on hierarchical collections of directories
48 consisting of version controlled files.  CVS helps to manage releases
49 and to control the concurrent editing of source files among multiple
50 authors.  CVS allows triggers to enable/log/control various
51 operations and works well over a wide area network.
52 .SP
53 .B cvs
54 keeps a single copy of the master sources.
55 This copy is called the source ``repository''; it contains all the
56 information to permit extracting previous software releases at any
57 time based on either a symbolic revision tag, or a date in the past.
58 .SH "ESSENTIAL COMMANDS"
59 .B cvs
60 provides a rich variety of commands (\fIcvs_command\fP in the
61 Synopsis), each of which often has a wealth of options, to satisfy the
62 many needs of source management in distributed environments.  However,
63 you don't have to master every detail to do useful work with
64 .BR cvs ;
65 in fact, five commands are sufficient to use (and contribute to)
66 the source repository.
67 .TP
68 \fBcvs checkout\fP \fImodules\fP\|.\|.\|.
69 A necessary preliminary for most \fBcvs\fP work: creates your private
70 copy of the source for \fImodules\fP (named collections of source; you
71 can also use a path relative to the source repository here).  You can
72 work with this copy without interfering with others' work.  At least
73 one subdirectory level is always created.
74 .TP
75 .B cvs update
76 Execute this command from \fIwithin\fP your private source
77 directory when you wish to update your copies of source files from
78 changes that other developers have made to the source in the
79 repository.
80 .TP
81 \fBcvs add\fP \fIfile\fP\|.\|.\|.
82 Use this command to enroll new files in \fBcvs\fP records of your
83 working directory.  The files will be added to the repository the next
84 time you run
85 .` "cvs commit".
86 Note:
87 You should use the
88 .` "cvs import"
89 command to bootstrap new sources into the source repository.
90 .` "cvs add"
91 is only used for new files to an already checked-out module.
92 .TP
93 \fBcvs remove\fP \fIfile\fP\|.\|.\|.
94 Use this command (after erasing any files listed) to declare that you
95 wish to eliminate files from the repository.  The removal does not
96 affect others until you run
97 .` "cvs commit".
98 .TP
99 \fBcvs commit\fP \fIfile\fP\|.\|.\|.
100 Use this command when you wish to ``publish'' your changes to other
101 developers, by incorporating them in the source repository.
102 .SH "OPTIONS"
103 The
104 .B cvs
105 command line can include
106 .IR cvs_options ,
107 which apply to the overall
108 .B cvs
109 program; a
110 .IR cvs_command ,
111 which specifies a particular action on the source repository; and
112 .I command_options
113 and
114 .I command_arguments
115 to fully specify what the
116 .I cvs_command
117 will do.
118 .SP
119 .I Warning:
120 you must be careful of precisely where you place options relative to the
121 .IR cvs_command .
122 The same option can mean different things depending on whether it
123 is in the
124 .I cvs_options
125 position (to the left of a
126 .B cvs
127 command) or in the
128 .I command_options
129 position (to the right of a
130 .B cvs
131 command).
132 .SP
133 There are only two situations where you may omit
134 .IR cvs_command :
135 .` "cvs \-H"
136 or
137 .` "cvs --help"
138 elicits a list of available commands, and
139 .` "cvs \-v"
140 or
141 .` "cvs --version"
142 displays version information on \fBcvs\fP itself.
143 .SP
144 .SH "CVS OPTIONS"
145 As of release 1.6,
146 .B cvs
147 supports
148 .SM GNU
149 style long options as well as short options.  Only
150 a few long options are currently supported, these are listed in
151 brackets after the short options whose functions they duplicate.
152 .SP
153 Use these options to control the overall
154 .B cvs
155 program:
156 .TP
157 .B \-H [ --help ]
158 Display usage information about the specified
159 .I cvs_command
160 (but do not actually execute the command).  If you don't specify a
161 command name,
162 .` "cvs \-H"
163 displays a summary of all the commands available.
164 .TP
165 .B \-Q
166 Causes the command to be
167 .I really
168 quiet; the command will generate output only for serious problems.
169 .TP
170 .B \-q
171 Causes the command to be somewhat quiet; informational messages, such
172 as reports of recursion through subdirectories, are suppressed.
173 .TP
174 \fB\-b\fP \fIbindir\fP
175 Use
176 .I bindir
177 as the directory where
178 .SM RCS
179 programs are located (CVS 1.9 and older).
180 Overrides the setting of the
181 .SM RCSBIN
182 environment variable.
183 This value should be specified as an absolute pathname.
184 .TP
185 \fB\-d\fP \fICVS_root_directory\fP
186 Use
187 .I CVS_root_directory
188 as the root directory pathname of the master
189 source repository.
190 Overrides the setting of the
191 .SM CVSROOT
192 environment variable.
193 This value should be specified as an absolute pathname.
194 .TP
195 \fB\-e\fP \fIeditor\fP
196 Use
197 .I editor
198 to enter revision log information.
199 Overrides the setting of the
200 .SM CVSEDITOR\c
201 ,
202 .SM VISUAL\c
203 , and
204 .SM EDITOR
205 environment variables.
206 .TP
207 .B \-f
208 Do not read the
209 .B cvs
210 startup file (\fI~/.cvsrc\fP).
211 .TP
212 .B \-n
213 Do not change any files.  Attempt to execute the
214 .IR cvs_command ,
215 but only to issue reports; do not remove, update, or merge any
216 existing files, or create any new files.
217 .TP
218 .B \-t
219 Trace program execution; display messages showing the steps of
220 .B cvs
221 activity.  Particularly useful with
222 .B \-n
223 to explore the potential impact of an unfamiliar command.
224 .TP
225 .B \-r
226 Makes new working files read-only.
227 Same effect as if the
228 .SM CVSREAD
229 environment variable is set.
230 .TP
231 .B \-R
232 Turns on read-only repository mode.  This allows one to check out from a
233 read-only repository, such as within an anoncvs server, or from a CDROM
234 repository.
235 Same effect as if the
236 .SM CVSREADONLYFS
237 environment variable is set.  Using
238 .B \-R
239 can also considerably speed up checkout's over NFS.
240 .TP
241 .B \-v [ --version ]
242 Displays version and copyright information for
243 .BR cvs .
244 .TP
245 .B \-w
246 Makes new working files read-write (default).
247 Overrides the setting of the
248 .SM CVSREAD
249 environment variable.
250 .TP
251 .B \-g
252 Forces group-write perms on working files.  This option is typically
253 used when you have multiple users sharing a single checked out source
254 tree, allowing them to operate their shells with a less dangerous umask.
255 To use this feature, create a directory to hold the checked-out source
256 tree, set it to a private group, and set up the directory such that
257 files created under it inherit the group id of the directory.  This occurs 
258 automatically with FreeBSD.  With SysV you must typically set the SGID bit
259 on the directory.  The users who are to share the checked out tree must
260 be placed in that group.  Note that the sharing of a single checked-out
261 source tree is very different from giving several users access to a common
262 CVS repository.  Access to a common CVS repository already maintains shared
263 group-write perms and does not require this option.
264
265 To use the option transparently, simply place the line 'cvs -g' in your
266 ~/.cvsrc file.  Doing this is not recommended unless you firewall all your
267 source checkouts within a private group or within a private mode 0700
268 directory.
269 .TP
270 .B \-x
271 Encrypt all communication between the client and the server.  As of
272 this writing, this is only implemented when using a Kerberos
273 connection.
274 .TP
275 \fB\-z\fP \fIcompression\-level\fP
276 When transferring files across the network use
277 .B gzip
278 with compression level \fIcompression\-level\fP to compress and
279 de-compress data as it is transferred.  Requires the presence of
280 the
281 .SM GNU
282 .B gzip
283 program in the current search path at both ends of the link.
284 .SH "USAGE"
285 Except when requesting general help with
286 .` "cvs \-H",
287 you must specify a
288 .I cvs_command
289 to
290 .B cvs
291 to select a specific release control function to perform.
292 Each
293 .B cvs
294 command accepts its own collection of options and arguments.
295 However, many options are available across several commands.
296 You can display a usage summary for each command by specifying the
297 .B \-H
298 option with the command.
299 .SH "CVS STARTUP FILE"
300 Normally, when CVS starts up, it reads the
301 .I .cvsrc
302 file from the home directory of the user reading it.  This startup
303 procedure can be turned off with the
304 .B \-f
305 flag.
306 .SP
307 The
308 .I .cvsrc
309 file lists CVS commands with a list of arguments, one command per
310 line.  For example, the following line in \fI.cvsrc\fP:
311 .SP
312 diff \-c
313 .SP
314 will mean that the
315 .` "cvs diff"
316 command will always be passed the \-c option in addition to any
317 other options that are specified in the command line (in this case
318 it will have the effect of producing context sensitive diffs for
319 all executions of
320 .` "cvs diff"
321 ).
322 .SP
323 Global options are specified using the \fBcvs\fP keyword.  For example,
324 the following:
325 .SP
326 cvs \-q
327 .SP
328 will mean that all
329 .` "cvs"
330 commands will behave as thought he \-q global option had been supplied.
331 .SH "CVS COMMAND SUMMARY"
332 Here are brief descriptions of all the
333 .B cvs
334 commands:
335 .TP
336 .B add
337 Add a new file or directory to the repository, pending a
338 .` "cvs commit"
339 on the same file.
340 Can only be done from within sources created by a previous
341 .` "cvs checkout"
342 invocation.
343 Use
344 .` "cvs import"
345 to place whole new hierarchies of sources under
346 .B cvs
347 control.
348 (Does not directly affect repository; changes
349 working directory.)
350 .TP
351 .B admin
352 Execute
353 control functions on the source repository.  (Changes
354 repository directly; uses working directory without changing it.)
355 .TP
356 .B checkout
357 Make a working directory of source files for editing.  (Creates or changes
358 working directory.)
359 .TP
360 .B commit
361 Apply to the source repository changes, additions, and deletions from your
362 working directory.  (Changes repository.)
363 .TP
364 .B diff
365 Show differences between files in working directory and source
366 repository, or between two revisions in source repository.
367 (Does not change either repository or working directory.)
368 .TP
369 .B export
370 Prepare copies of a set of source files for shipment off site.
371 Differs from
372 .` "cvs checkout"
373 in that no
374 .B cvs
375 administrative directories are created (and therefore
376 .` "cvs commit"
377 cannot be executed from a directory prepared with
378 .` "cvs export"),
379 and a symbolic tag must be specified.
380 (Does not change repository; creates directory similar to working
381 directories).
382 .TP
383 .B history
384 Show reports on
385 .B cvs
386 commands that you or others have executed on a particular file or
387 directory in the source repository.  (Does not change repository or
388 working directory.)  History logs are kept only if enabled by creation
389 of the
390 .` "$CVSROOT/CVSROOT/history"
391 file; see
392 .BR cvs ( 5 ).
393 .TP
394 .B import
395 Incorporate a set of updates from off-site into the source repository,
396 as a ``vendor branch''.  (Changes repository.)
397 .TP
398 .B init
399 Initialize a repository by adding the CVSROOT subdirectory and some default
400 control files. You must use this command or initialize the repository in
401 some other way before you can use it.
402 .TP
403 .B log
404 Display
405 log information.
406 (Does not change repository or working directory.)
407 .TP
408 .B rdiff
409 Prepare a collection of diffs as a patch file between two releases in
410 the repository.  (Does not change repository or working directory.)
411 .TP
412 .B release
413 Cancel a
414 .` "cvs checkout",
415 abandoning any changes.
416 (Can delete working directory; no effect on repository.)
417 .TP
418 .B remove
419 Remove files from the source repository, pending a
420 .` "cvs commit"
421 on the same files.  (Does not directly affect repository;
422 changes working directory.)
423 .TP
424 .B rtag
425 Explicitly specify a symbolic tag for particular revisions of files in the
426 source repository.  See also
427 .` "cvs tag".
428 (Changes repository directly; does not require or affect
429 working directory.)
430 .TP
431 .B status
432 Show current status of files: latest version, version in working
433 directory, whether working version has been edited and, optionally,
434 symbolic tags in the
435 .SM RCS
436 file.  (Does not change
437 repository or working directory.)
438 .TP
439 .B tag
440 Specify a symbolic tag for files in the repository.  By default, tags
441 the revisions
442 that were last synchronized with your working directory.   (Changes
443 repository directly; uses working directory without changing it.)
444 .TP
445 .B update
446 Bring your working directory up to date with changes from the
447 repository.  Merges are performed automatically when possible; a
448 warning is issued if manual resolution is required for conflicting
449 changes.  (Changes working directory; does not change repository.)
450 .SH "COMMON COMMAND OPTIONS"
451 This section describes the
452 .I command_options
453 that are available across several
454 .B cvs
455 commands.  Not all commands support all of these options; each option
456 is only supported for commands where it makes sense.  However, when
457 a command has one of these options you can count on the same meaning
458 for the option as in other commands.  (Other command
459 options, which are listed with the individual commands, may have
460 different meanings from one
461 .B cvs
462 command to another.)
463 .I "Warning:"
464 the
465 .B history
466 command is an exception;
467 it supports many options that conflict
468 even with these standard options.
469 .TP
470 \fB\-D\fP \fIdate_spec\fP
471 Use the most recent revision no later than \fIdate_spec\fP (a single
472 argument, date description specifying a date in the
473 past).  A wide variety of date formats are supported, in particular
474 ISO ("1972-09-24 20:05") or Internet ("24 Sep 1972 20:05").
475 The \fIdate_spec\fP is interpreted as being in the local timezone, unless a
476 specific timezone is specified.
477 The specification is ``sticky'' when you use it to make a
478 private copy of a source file; that is, when you get a working file
479 using \fB\-D\fP, \fBcvs\fP records the date you
480 specified, so that further updates in the same directory will use the
481 same date (unless you explicitly override it; see the description of
482 the \fBupdate\fP command).
483 .B \-D
484 is available with the
485 .BR checkout ", " diff ", " history ", " export ", "
486 .BR rdiff ", " rtag ", and "
487 .B update
488 commands.
489 Examples of valid date specifications include:
490 .in +1i
491 .ft B
492 .nf
493 1 month ago
494 2 hours ago
495 400000 seconds ago
496 last year
497 last Monday
498 yesterday
499 a fortnight ago
500 3/31/92 10:00:07 PST
501 January 23, 1987 10:05pm
502 22:00 GMT
503 .fi
504 .ft P
505 .in -1i
506 .TP
507 .B \-f
508 When you specify a particular date or tag to \fBcvs\fP commands, they
509 normally ignore files that do not contain the tag (or did not exist on
510 the date) that you specified.  Use the \fB\-f\fP option if you want
511 files retrieved even when there is no match for the tag or date.  (The
512 most recent version is used in this situation.)
513 .B \-f
514 is available with these commands:
515 .BR checkout ", " export ", "
516 .BR rdiff ", " rtag ", and " update .
517 .TP
518 \fB\-k\fP \fIkflag\fP
519 Alter the default
520 processing of keywords.
521 The \fB\-k\fP option is available with the
522 .BR add ", " checkout ", " diff ", " export ", "
523 .BR rdiff ", and " update
524 commands.  Your \fIkflag\fP specification is ``sticky'' when you use
525 it to create a private copy of a source file; that is, when you use
526 this option with the \fBcheckout\fP or \fBupdate\fP commands,
527 \fBcvs\fP associates your selected \fIkflag\fP with the file, and
528 continues to use it with future \fBupdate\fP commands on the same file
529 until you specify otherwise.
530 .SP
531 Some of the more useful \fIkflag\fPs are \-ko and \-kb (for binary files),
532 and \-kv which is useful for an
533 .B export
534 where you wish to retain keyword information after an
535 .B import
536 at some other site.
537 .TP
538 .B \-l
539 Local; run only in current working directory, rather than recurring through
540 subdirectories.   Available with the following commands:
541 .BR checkout ", " commit ", " diff ", "
542 .BR export ", " remove ", " rdiff ", " rtag ", "
543 .BR status ", " tag ", and " update .
544 .TP
545 .B \-n
546 Do
547 .I not
548 run any
549 .BR checkout / commit / tag / update
550 program.  (A program can be specified to run on each of these
551 activities, in the modules database; this option bypasses it.)
552 Available with the
553 .BR checkout ", " commit ", " export ", and "
554 .B rtag
555 commands.
556 .I Warning:
557 this is not the same
558 as the overall
559 .` "cvs \-n"
560 option, which you can specify to the
561 .I left
562 of a
563 .B cvs
564 command!
565 .TP
566 .B \-P
567 Prune (remove) directories that are empty after being updated, on
568 .BR checkout ", or " update .
569 Normally, an empty directory (one that is void of revision-controlled
570 files) is left alone.
571 Specifying
572 .B \-P
573 will cause these directories to be silently removed from your checked-out
574 sources.
575 This does not remove the directory from the repository, only from your
576 checked out copy.
577 Note that this option is implied by the
578 .B \-r
579 or
580 .B \-D
581 options of
582 .BR checkout " and " export .
583 .TP
584 .B \-T
585 Create/Update CVS/Template by copying it from the (local) repository.
586 This option is useful for developers maintaining a local cvs repository
587 but committing to a remote repository.  By maintaining CVS/Template the
588 remote commits will still be able to bring up the proper template in the
589 commit editor session.
590 Available with the
591 .BR checkout " and " update
592 commands.
593 .TP
594 .B \-p
595 Pipe the files retrieved from the repository to standard output,
596 rather than writing them in the current directory.  Available with the
597 .BR checkout " and " update
598 commands.
599 .TP
600 \fB\-r\fP \fItag\fP
601 Use the revision specified by the
602 .I tag
603 argument instead of the default ``head'' revision.  As well as
604 arbitrary tags defined with the \fBtag\fP or \fBrtag\fP command, two
605 special tags are always available:
606 .` "HEAD"
607 refers to the most
608 recent version available in the repository, and
609 .` "BASE"
610 refers to the revision you last checked out into the current working
611 directory.
612 .SP
613 The \fItag\fP specification is ``sticky'' when you use
614 this option with
615 .` "cvs checkout"
616 or
617 .` "cvs update"
618 to
619 make your own copy of a file: \fBcvs\fP remembers the \fItag\fP and
620 continues to use it on future \fBupdate\fP commands, until you specify
621 otherwise.
622 .I tag
623 can be either a symbolic or numeric tag.
624 Specifying the
625 .B \-q
626 global option along with the
627 .B \-r
628 command option is often useful, to suppress the warning messages when the
629 .SM RCS
630 file does not contain the specified tag.
631 .B \-r
632 is available with the
633 .BR checkout ", " commit ", " diff ", "
634 .BR history ", " export ", "
635 .BR rdiff ", " rtag ", and " update
636 commands.
637 .I Warning:
638 this is not the same
639 as the overall
640 .` "cvs \-r"
641 option, which you can specify to the
642 .I left
643 of a
644 .B cvs
645 command!
646 .SH "CVS COMMANDS"
647 Here (finally) are details on all the
648 .B cvs
649 commands and the options each accepts.  The summary lines at the top
650 of each command's description highlight three kinds of things:
651 .TP 1i
652 \ \ \ \ Command Options and Arguments
653 Special options are described in detail below; common command options
654 may appear only in the summary line.
655 .TP 1i
656 \ \ \ \ Working Directory, or Repository?
657 Some \fBcvs\fP commands require a working directory to operate; some
658 require a repository.  Also, some commands \fIchange\fP the
659 repository, some change the working directory, and some change
660 nothing.
661 .TP 1i
662 \ \ \ \ Synonyms
663 Many commands have synonyms, which you may find easier to
664 remember (or type) than the principal name.
665 .PP
666 .TP
667 \fBadd\fP [\fB\-k\fP \fIkflag\fP] [\fB\-m '\fP\fImessage\fP\fB'\fP] \fIfiles.\|.\|.\fP
668 .I Requires:
669 repository, working directory.
670 .br
671 .I Changes:
672 working directory.
673 .br
674 .I Synonym:
675 .B new
676 .br
677 Use the
678 .B add
679 command to create a new file or directory in the
680 source repository.
681 The files or directories specified with
682 .B add
683 must already exist in the current directory (which must have been created
684 with the
685 .B checkout
686 command).
687 To add a whole new directory hierarchy to the source repository
688 (for example, files received from a third-party vendor), use the
689 .` "cvs import"
690 command instead.
691 .SP
692 If the argument to
693 .` "cvs add"
694 refers to an immediate sub-directory, the directory is
695 created at the correct place in the
696 source repository, and the necessary
697 .B cvs
698 administration files are created in your working directory.
699 If the directory already exists in the source repository,
700 .` "cvs add"
701 still creates the administration files in your version of the directory.
702 This allows you to use
703 .` "cvs add"
704 to add a particular directory to your private sources even if
705 someone else created that directory after your
706 .B checkout
707 of the sources.  You can do the following:
708 .SP
709 .in +1i
710 .ft B
711 .nf
712 example% mkdir new_directory
713 example% cvs add new_directory
714 example% cvs update new_directory
715 .fi
716 .ft P
717 .in -1i
718 .SP
719 An alternate approach using
720 .` "cvs update"
721 might be:
722 .SP
723 .in +1i
724 .ft B
725 .nf
726 example% cvs update -d new_directory
727 .fi
728 .ft P
729 .in -1i
730 .SP
731 (To add \fIany available\fP new directories to your working directory, it's
732 probably simpler to use
733 .` "cvs checkout"
734 or
735 .` "cvs update -d".)
736 .SP
737 The added files are not placed in the
738 source repository until you use
739 .` "cvs commit"
740 to make the change permanent.
741 Doing a
742 .` "cvs add"
743 on a file that was removed with the
744 .` "cvs remove"
745 command will resurrect the file, if no
746 .` "cvs commit"
747 command intervened.
748 .SP
749 You will have the opportunity to specify a logging message, as usual,
750 when you use
751 .` "cvs commit"
752 to make the new file permanent.  If you'd like to have another
753 logging message associated with just
754 .I creation
755 of the file (for example, to describe the file's purpose), you can
756 specify it with the
757 .` "\-m \fImessage\fP"
758 option to the
759 .B add
760 command.
761 .SP
762 The
763 .` "-k kflag"
764 option specifies the default way that this
765 file will be checked out.
766 The
767 .` "kflag"
768 argument is stored in the
769 .SM RCS
770 file and can be changed with
771 .` "cvs admin".
772 Specifying
773 .` "-ko"
774 is useful for checking in binaries that
775 shouldn't have
776 keywords expanded.
777 .TP
778 \fBadmin\fP [\fIrcs-options\fP] \fIfiles.\|.\|.\fP
779 .I Requires:
780 repository, working directory.
781 .br
782 .I Changes:
783 repository.
784 .br
785 .I Synonym:
786 .B rcs
787 .br
788 This is the
789 .B cvs
790 interface to assorted administrative
791 facilities, similar to
792 .BR rcs ( 1 ).
793 This command works recursively, so extreme care should be
794 used.
795 .TP
796 \fBcheckout\fP [\fBoptions\fP] \fImodules\fP.\|.\|.
797 .I Requires:
798 repository.
799 .br
800 .I Changes:
801 working directory.
802 .br
803 .I Synonyms:
804 .BR co ", " get
805 .br
806 Make a working directory containing copies of the source files specified by
807 .IR modules .
808 You must execute
809 .` "cvs checkout"
810 before using most of the other
811 .B cvs
812 commands, since most of them operate on your working directory.
813 .SP
814 \fImodules\fP are either symbolic names (themselves defined as the
815 module
816 .` "modules"
817 in the source repository; see
818 .BR cvs ( 5 ))
819 for some collection of source directories and files, or paths to
820 directories or files in the repository.
821 .SP
822 Depending on the
823 .I modules
824 you specify,
825 .B checkout
826 may recursively create directories and populate them with the appropriate
827 source files.
828 You can then edit these source files at any time (regardless of whether
829 other software developers are editing their own copies of the sources);
830 update them to include new changes applied by others to the source
831 repository; or commit your work as a permanent change to the
832 repository.
833 .SP
834 Note that
835 .B checkout
836 is used to create directories.
837 The top-level directory created is always added to the directory
838 where
839 .B checkout
840 is invoked, and usually has the same name as the specified
841 .IR module .
842 In the case of a
843 .I module
844 alias, the created sub-directory may have a different name, but you can be
845 sure that it will be a sub-directory, and that
846 .B checkout
847 will show the relative path leading to each file as it is extracted into
848 your private work area (unless you specify the
849 .B \-Q
850 global option).
851 .SP
852 Running
853 .` "cvs checkout"
854 on a directory that was already built by a prior
855 .B checkout
856 is also permitted, and
857 has the same effect as specifying the
858 .B \-d
859 option to the
860 .B update
861 command described below.
862 .SP
863 The
864 .I options
865 permitted with
866 .` "cvs checkout"
867 include the standard command options
868 .BR \-P ", " \-f ", "
869 .BI \-k " kflag"
870 \&,
871 .BR \-l ", " \-n ", " \-p ", "
872 .BR \-r
873 .IR tag ", and"
874 .BI \-D " date"\c
875 \&.
876 .SP
877 In addition to those, you can use these special command options
878 with
879 .BR checkout :
880 .SP
881 Use the
882 .B \-A
883 option to reset any sticky tags, dates, or
884 .B \-k
885 options.  (If you get a working file using one of the
886 \fB\-r\fP, \fB\-D\fP, or \fB\-k\fP options, \fBcvs\fP remembers the
887 corresponding tag, date, or \fIkflag\fP and continues using it on
888 future updates; use the \fB\-A\fP option to make \fBcvs\fP forget these
889 specifications, and retrieve the ``head'' version of the file).
890 .SP
891 The
892 .BI \-j " branch"
893 option merges the changes made between the
894 resulting revision and the revision that it is based on (e.g., if
895 the tag refers to a branch,
896 .B cvs
897 will merge all changes made in that branch into your working file).
898 .SP
899 With two \fB-j\fP options,
900 .B cvs
901 will merge in the changes between the two respective revisions.
902 This can be used to ``remove'' a certain delta from your working file.
903 .SP
904 In addition, each \fB-j\fP option can contain on optional date
905 specification which, when used with branches, can limit the chosen
906 revision to one within a specific date.
907 An optional date is specified by adding a colon (:) to the tag.
908 An example might be what
909 .` "cvs import"
910 tells you to do when you have
911 just imported sources that have conflicts with local changes:
912 .SP
913 .in +1i
914 .ft B
915 .nf
916 example% cvs checkout -jTAG:yesterday -jTAG module
917 .fi
918 .ft P
919 .in -1i
920 .SP
921 Use the
922 .B \-N
923 option with
924 .` "\-d \fIdir\fP"
925 to avoid shortening module paths in your working directory.   (Normally, \fBcvs\fP shortens paths as much as possible when you specify an explicit target directory.)
926 .SP
927 Use the
928 .B \-c
929 option to copy the module file, sorted, to the standard output,
930 instead of creating or modifying any files or directories in your
931 working directory.
932 .SP
933 Use the
934 .BI \-d " dir"
935 option to create a directory called
936 .I dir
937 for the working files, instead of using the module name.  Unless you
938 also use \fB\-N\fP, the paths created under \fIdir\fP will be as short
939 as possible.
940 .SP
941 Use the
942 .B \-s
943 option to display per-module status information stored with
944 the
945 .B \-s
946 option within the modules file. 
947 .TP
948 \fBcommit\fP [\fB\-lnR\fP] [\fB\-m\fP '\fIlog_message\fP' | \fB\-F\fP \fIfile\fP] [\fB\-r\fP \fIrevision\fP] [\fIfiles.\|.\|.\fP]
949 .I Requires:
950 working directory, repository.
951 .br
952 .I Changes:
953 repository.
954 .br
955 .I Synonym:
956 .B ci
957 .br
958 Use
959 .` "cvs commit"
960 when you want to incorporate changes from your working source
961 files into the general source repository.
962 .SP
963 If you don't specify particular \fIfiles\fP to commit, all
964 of the files in your working current directory are examined.
965 .B commit
966 is careful to change in the repository only those files that you have
967 really changed.  By default (or if you explicitly specify the
968 .B \-R
969 option), files
970 in subdirectories are also examined and committed if they have
971 changed; you can use the
972 .B \-l
973 option to limit
974 .B commit
975 to the current directory only.
976 Sometimes you may want to force a file to be committed even though it
977 is unchanged; this is achieved with the
978 .B \-f
979 flag, which also has the effect of disabling recursion (you can turn
980 it back on with
981 .B \-R
982 of course).
983 .SP
984 .B commit
985 verifies that the selected files are up to date with the current revisions
986 in the source repository; it will notify you, and exit without
987 committing, if any of the specified files must be made current first
988 with
989 .` "cvs update".
990 .B commit
991 does not call the
992 .B update
993 command for you, but rather leaves that for you to do when
994 the time is right.
995 .SP
996 When all is well, an editor is invoked to allow you to enter a log
997 message that will be written to one or more logging programs and placed in the
998 source repository file.
999 You can instead specify the log message on the command line with the
1000 .B \-m
1001 option, thus suppressing the editor invocation, or use the
1002 .B \-F
1003 option to specify that the argument \fIfile\fP contains the log message.
1004 .SP
1005 The
1006 .B \-r
1007 option can be used to commit to a particular symbolic or numeric revision.
1008 For example, to bring all your files up to the
1009 revision ``3.0'' (including those that haven't changed), you might do:
1010 .SP
1011 .in +1i
1012 .ft B
1013 .nf
1014 example% cvs commit -r3.0
1015 .fi
1016 .ft P
1017 .in -1i
1018 .SP
1019 .B cvs
1020 will only allow you to commit to a revision that is on the main trunk (a
1021 revision with a single dot).
1022 However, you can also commit to a branch revision (one that has an even
1023 number of dots) with the
1024 .B \-r
1025 option.
1026 To create a branch revision, one typically use the
1027 .B \-b
1028 option of the
1029 .BR rtag " or " tag
1030 commands.
1031 Then, either
1032 .BR checkout " or " update
1033 can be used to base your sources on the newly created branch.
1034 From that point on, all
1035 .B commit
1036 changes made within these working sources will be automatically added
1037 to a branch revision, thereby not perturbing main-line development in any
1038 way.
1039 For example, if you had to create a patch to the 1.2 version of the
1040 product, even though the 2.0 version is already under development, you
1041 might do:
1042 .SP
1043 .in +1i
1044 .ft B
1045 .nf
1046 example% cvs rtag -b -rFCS1_2 FCS1_2_Patch product_module
1047 example% cvs checkout -rFCS1_2_Patch product_module
1048 example% cd product_module
1049 [[ hack away ]]
1050 example% cvs commit
1051 .fi
1052 .ft P
1053 .in -1i
1054 .SP
1055 Say you have been working on some extremely experimental software, based on
1056 whatever revision you happened to checkout last week.
1057 If others in your group would like to work on this software with you, but
1058 without disturbing main-line development, you could commit your change to a
1059 new branch.
1060 Others can then checkout your experimental stuff and utilize the full
1061 benefit of
1062 .B cvs
1063 conflict resolution.
1064 The scenario might look like:
1065 .SP
1066 .in +1i
1067 .ft B
1068 .nf
1069 example% cvs tag -b EXPR1
1070 example% cvs update -rEXPR1
1071 [[ hack away ]]
1072 example% cvs commit
1073 .fi
1074 .ft P
1075 .in -1i
1076 .SP
1077 Others would simply do
1078 .` "cvs checkout -rEXPR1 whatever_module"
1079 to work with you on the experimental change.
1080 .TP
1081 \fBdiff\fP [\fB\-kl\fP] [\fIformat_options\fP] [[\fB\-r\fP \fIrev1\fP | \fB\-D\fP \fIdate1\fP | \fB\-j\fP \fIrev1:date1\fP] [\fB\-r\fP \fIrev2\fP | \fB\-D\fP \fIdate2\fP | \fB\-j\fP \fIrev2:date2\fP]] [\fIfiles.\|.\|.\fP]
1082 .I Requires:
1083 working directory, repository.
1084 .br
1085 .I Changes:
1086 nothing.
1087 .br
1088 You can compare your working files with revisions in the source
1089 repository, with the
1090 .` "cvs diff"
1091 command.  If you don't specify a particular revision, your files
1092 are compared with the revisions they were based on.  You can also use
1093 the standard
1094 .B cvs
1095 command option
1096 .B \-r
1097 to specify a particular revision to compare your files with.  Finally,
1098 if you use
1099 .B \-r
1100 twice, you can see differences between two revisions in the
1101 repository.
1102 You can also specify
1103 .B \-D
1104 options to diff against a revision (on the head branch) in the past, and
1105 you can also specify
1106 .B \-j
1107 options to diff against a revision relative to a branch tag in the past.
1108 The
1109 .B \-r
1110 and
1111 .B \-D
1112 and
1113 .B \-j
1114 options can be mixed together with at most two options ever specified.
1115 .SP
1116 See
1117 .` "cvs --help diff"
1118 for a list of supported
1119 .IR format_options .
1120 .SP
1121 If you don't specify any files,
1122 .B diff
1123 will display differences for all those files in the current directory
1124 (and its subdirectories, unless you use the standard option
1125 .BR \-l )
1126 that
1127 differ from the corresponding revision in the source repository
1128 (i.e. files that
1129 .I you
1130 have changed), or that differ from the revision specified.
1131 .TP
1132 \fBexport\fP [\-\fBf\|lNnQq\fP] \fB\-r\fP \fIrev\fP\||\|\fB\-D\fP \fIdate\fP [\fB\-d\fP \fIdir\fP] [\fB\-k\fP \fIkflag\fP] \fImodule\fP.\|.\|.
1133 .I Requires:
1134 repository.
1135 .br
1136 .I Changes:
1137 current directory.
1138 .br
1139 This command is a variant of
1140 .` "cvs checkout";
1141 use it when you want a copy of the source for \fImodule\fP
1142 without the \fBcvs\fP administrative directories.  For example, you
1143 might use
1144 .` "cvs export"
1145 to prepare source for shipment
1146 off-site.  This command \fIrequires\fP that you specify a date or tag
1147 (with \fB\-D\fP or \fB\-r\fP), so that you can count on reproducing
1148 the source you ship to others.
1149 .SP
1150 The only non-standard options are
1151 .` "\-d \fIdir\fP"
1152 (write the
1153 source into directory \fIdir\fP) and
1154 .` "\-N"
1155 (don't shorten
1156 module paths).
1157 These have the same meanings as the same options in
1158 .` "cvs checkout".
1159 .SP
1160 The
1161 .B \-kv
1162 option is useful when
1163 .B export
1164 is used.
1165 This causes any
1166 keywords to be expanded such that an
1167 .B import
1168 done at some other site will not lose the keyword revision information.
1169 Other \fIkflag\fPs may be used with
1170 .` "cvs export"
1171 and are described in
1172 .BR co ( 1 ).
1173 .TP
1174 \fBhistory\fP [\fB\-\fP\fIreport\fP] [\fB\-\fP\fIflags\fP] [\fB\-\fP\fIoptions args\fP] [\fIfiles\fP.\|.\|.]
1175 .I Requires:
1176 the file
1177 .` "$CVSROOT/CVSROOT/history"
1178 .br
1179 .I Changes:
1180 nothing.
1181 .br
1182 \fBcvs\fP keeps a history file that tracks each use of the
1183 \fBcheckout\fP, \fBcommit\fP, \fBrtag\fP, \fBupdate\fP, and \fBrelease\fP
1184 commands.  You can use
1185 .` "cvs history"
1186 to display this
1187 information in various formats.
1188 .SP
1189 .I Warning:
1190 .` "cvs history"
1191 uses
1192 .` "\-f",
1193 .` "\-l",
1194 .` "\-n",
1195 and
1196 .` "\-p"
1197 in ways that conflict with the
1198 descriptions in
1199 .SM
1200 COMMON COMMAND OPTIONS\c
1201 \&.
1202 .SP
1203 Several options (shown above as \fB\-\fP\fIreport\fP) control what
1204 kind of report is generated:
1205 .TP 1i
1206 .B \ \ \ \ \ \ \-c
1207 Report on each time \fBcommit\fP was used (i.e., each time the
1208 repository was modified).
1209 .TP 1i
1210 \fB\ \ \ \ \ \ \-m\fP \fImodule\fP
1211 Report on a particular \fImodule\fP.  (You can meaningfully use
1212 \fB\-m\fP more than once on the command line.)
1213 .TP 1i
1214 .B \ \ \ \ \ \ \-o
1215 Report on checked-out modules.
1216 .TP 1i
1217 .B \ \ \ \ \ \ \-T
1218 Report on all tags.
1219 .TP 1i
1220 \fB\ \ \ \ \ \ \-x\fP \fItype\fP
1221 Extract a particular set of record types \fIX\fP from the \fBcvs\fP
1222 history.  The types are indicated by single letters, which you may
1223 specify in combination.
1224 Certain commands have a single record type: \fBcheckout\fP (type `O'),
1225 \fBrelease\fP (type `F'), and \fBrtag\fP (type `T').  One of four
1226 record types may result from an \fBupdate\fP: `W', when the working copy
1227 of a file is deleted during update (because it was gone from the
1228 repository); `U', when a working file was copied from the
1229 repository; `G', when a merge was necessary and it succeeded; and 'C',
1230 when a merge was necessary but collisions were detected (requiring
1231 manual merging).  Finally, one of three record types results from
1232 \fBcommit\fP: `M', when a file was modified; `A', when a file is first
1233 added; and `R', when a file is removed.
1234 .TP 1i
1235 .B \ \ \ \ \ \ \-e
1236 Everything (all record types); equivalent to specifying
1237 .` "\-xMACFROGWUT".
1238 .TP 1i
1239 \fB\ \ \ \ \ \ \-z\fP \fIzone\fP
1240 Use time zone
1241 .I zone
1242 when outputting history records.
1243 The zone name
1244 .B LT
1245 stands for local time;
1246 numeric offsets stand for hours and minutes ahead of UTC.
1247 For example,
1248 .B +0530
1249 stands for 5 hours and 30 minutes ahead of (i.e. east of) UTC.
1250 .PP
1251 .RS .5i
1252 The options shown as \fB\-\fP\fIflags\fP constrain the report without
1253 requiring option arguments:
1254 .RE
1255 .TP 1i
1256 .B \ \ \ \ \ \ \-a
1257 Show data for all users (the default is to show data only for the user
1258 executing
1259 .` "cvs history").
1260 .TP 1i
1261 .B \ \ \ \ \ \ \-l
1262 Show last modification only.
1263 .TP 1i
1264 .B \ \ \ \ \ \ \-w
1265 Show only the records for modifications done from the same working
1266 directory where
1267 .` "cvs history"
1268 is executing.
1269 .PP
1270 .RS .5i
1271 The options shown as \fB\-\fP\fIoptions args\fP constrain the report
1272 based on an argument:
1273 .RE
1274 .TP 1i
1275 \fB\ \ \ \ \ \ \-b\fP \fIstr\fP
1276 Show data back to a record containing the string \fIstr\fP in either
1277 the module name, the file name, or the repository path.
1278 .TP 1i
1279 \fB\ \ \ \ \ \ \-D\fP \fIdate\fP
1280 Show data since \fIdate\fP.
1281 .TP 1i
1282 \fB\ \ \ \ \ \ \-p\fP \fIrepository\fP
1283 Show data for a particular source repository (you can specify several
1284 \fB\-p\fP options on the same command line).
1285 .TP 1i
1286 \fB\ \ \ \ \ \ \-r\fP \fIrev\fP
1287 Show records referring to revisions since the revision or tag
1288 named \fIrev\fP appears in individual RCS files.
1289 Each
1290 .SM RCS
1291 file is searched for the revision or tag.
1292 .TP 1i
1293 \fB\ \ \ \ \ \ \-t\fP \fItag\fP
1294 Show records since tag \fItag\fP was last added to the history file.
1295 This differs from the \fB-r\fP flag above in that it reads
1296 only the history file, not the
1297 .SM RCS
1298 files, and is much faster.
1299 .TP 1i
1300 \fB\ \ \ \ \ \ \-u\fP \fIname\fP
1301 Show records for user \fIname\fP.
1302 .PP
1303 .TP
1304 \fBimport\fP [\fB\-\fP\fIoptions\fP] \fIrepository vendortag releasetag\fP.\|.\|.
1305 .I Requires:
1306 Repository, source distribution directory.
1307 .br
1308 .I Changes:
1309 repository.
1310 .br
1311 Use
1312 .` "cvs import"
1313 to incorporate an entire source
1314 distribution from an outside source (e.g., a source vendor) into your
1315 source repository directory.  You can use this command both for
1316 initial creation of a repository, and for wholesale updates to the
1317 module form the outside source.
1318 .SP
1319 The \fIrepository\fP argument gives a directory name (or a path to a
1320 directory) under the CVS root directory for repositories; if the
1321 directory did not exist, \fBimport\fP creates it.
1322 .SP
1323 When you use \fBimport\fP for updates to source that has been modified in your
1324 source repository (since a prior \fBimport\fP), it
1325 will notify you of any files that conflict in the two branches of
1326 development; use
1327 .` "cvs checkout -j"
1328 to reconcile the differences, as \fBimport\fP instructs you to do.
1329 .SP
1330 By default, certain file names are ignored during
1331 .` "cvs import":
1332 names associated with
1333 .SM CVS
1334 administration, or with other common source control systems; common
1335 names for patch files, object files, archive files, and editor backup
1336 files; and other names that are usually artifacts of assorted utilities.
1337 For an up to date list of ignored file names, see the Cederqvist manual (as
1338 described in the SEE ALSO section of this manpage).
1339 .SP
1340 The outside source is saved in a first-level
1341 branch, by default
1342 .` "1.1.1".
1343 Updates are leaves of this
1344 branch; for example, files from the first imported collection of
1345 source will be revision
1346 .` "1.1.1.1",
1347 then files from the first
1348 imported update will be revision
1349 .` "1.1.1.2",
1350 and so on.
1351 .SP
1352 At least three arguments are required.  \fIrepository\fP is needed to
1353 identify the collection of source.  \fIvendortag\fP is a tag for the
1354 entire branch (e.g., for
1355 .` "1.1.1").
1356 You must also specify at
1357 least one \fIreleasetag\fP to identify the files at the leaves created
1358 each time you execute
1359 .` "cvs import".
1360 .SP
1361 One of the standard
1362 .B cvs
1363 command options is available: \fB\-m\fP
1364 \fImessage\fP.  If you do not specify a logging message with
1365 \fB\-m\fP, your editor is invoked (as with \fBcommit\fP) to allow you
1366 to enter one.
1367 .SP
1368 There are three additional special options.
1369 .SP
1370 Use
1371 .` "\-d"
1372 to specify that each file's time of last modification should be used
1373 for the checkin date and time.
1374 .SP
1375 Use
1376 .` "\-b \fIbranch\fP"
1377 to specify a first-level branch other
1378 than
1379 .` "1.1.1".
1380 .SP
1381 Use
1382 .` "\-I \fIname\fP"
1383 to specify file names that should be
1384 ignored during \fBimport\fP.  You can use this option repeatedly.
1385 To avoid ignoring any files at all (even those ignored by default),
1386 specify
1387 .` "\-I !".
1388 .TP
1389 \fBlog\fP [\fB\-l\fP] \fIrlog-options [files\fP\|.\|.\|.]
1390 .I Requires:
1391 repository, working directory.
1392 .br
1393 .I Changes:
1394 nothing.
1395 .br
1396 .I Synonym:
1397 .B rlog
1398 .br
1399 Display log information for \fIfiles\fP.
1400 Among the more useful options are \fB\-h\fP
1401 to display only the header (including tag definitions, but omitting
1402 most of the full log); \fB\-r\fP to select logs on particular
1403 revisions or ranges of revisions; and \fB\-d\fP to select particular
1404 dates or date ranges.  See
1405 .BR rlog ( 1 )
1406 for full explanations.
1407 This command is recursive by default, unless the
1408 .B \-l
1409 option is specified.
1410 .TP
1411 \fBrdiff\fP [\fB\-\fP\fIflags\fP] [\fB\-V\fP \fIvn\fP] [\fB\-r\fP \fIt\fP|\fB\-D\fP \fId\fP [\fB\-r\fP \fIt2\fP|\fB\-D\fP \fId2\fP]] \fImodules\|.\|.\|.\fP
1412 .I Requires:
1413 repository.
1414 .br
1415 .I Changes:
1416 nothing.
1417 .br
1418 .I Synonym:
1419 .B patch
1420 .br
1421 Builds a Larry Wall format
1422 .BR patch ( 1 )
1423 file between two releases, that can be fed directly into the
1424 .B patch
1425 program to bring an old release up-to-date with the new release.
1426 (This is one of the few \fBcvs\fP commands that operates directly from
1427 the repository, and doesn't require a prior
1428 .BR checkout .)
1429 The diff output is sent to the standard output device.
1430 You can specify (using the standard \fB\-r\fP and \fB\-D\fP options)
1431 any combination of one or two revisions or dates.
1432 If only one revision or date is specified, the
1433 patch file reflects differences between that revision or date and the
1434 current ``head'' revisions in the
1435 .SM RCS
1436 file.
1437 .SP
1438 Note that if the software release affected
1439 is contained in more than one directory, then it may be necessary to
1440 specify the
1441 .B \-p
1442 option to the
1443 .B patch
1444 command when patching the old sources, so that
1445 .B patch
1446 is able to find the files that are located in other directories.
1447 .SP
1448 The standard option \fIflags\fP \fB\-f\fP, and \fB\-l\fP
1449 are available with this command.  There are also several
1450 special option flags:
1451 .SP
1452 If you use the
1453 .B \-s
1454 option, no patch output is produced.
1455 Instead, a summary of the changed or added files between the two
1456 releases is sent to the standard output device.
1457 This is useful for finding out, for example, which files have changed
1458 between two dates or revisions.
1459 .SP
1460 If you use the
1461 .B \-t
1462 option, a diff of the top two revisions is sent to the standard output device.
1463 This is most useful for seeing what the last change to a file was.
1464 .SP
1465 If you use the
1466 .B \-u
1467 option, the patch output uses the newer ``unidiff'' format for context
1468 diffs.
1469 .SP
1470 You can use
1471 .B \-c
1472 to explicitly specify the
1473 .` "diff \-c"
1474 form of context diffs
1475 (which is the default), if you like.
1476 .TP
1477 \fBrelease\fP [\fB\-dQq\fP] \fImodules\fP\|.\|.\|.
1478 .I Requires:
1479 Working directory.
1480 .br
1481 .I Changes:
1482 Working directory, history log.
1483 .br
1484 This command is meant to safely cancel the effect of
1485 .` "cvs checkout".
1486 Since
1487 .B cvs
1488 doesn't lock files, it isn't strictly necessary to use this command.
1489 You can always simply delete your working directory, if you
1490 like; but you risk losing changes you may have forgotten, and you
1491 leave no trace in the
1492 .B cvs
1493 history file that you've abandoned your checkout.
1494 .SP
1495 Use
1496 .` "cvs release"
1497 to avoid these problems.  This command
1498 checks that no un-committed changes are present; that you are
1499 executing it from immediately above, or inside, a \fBcvs\fP working
1500 directory; and that the repository recorded for your files is the same
1501 as the repository defined in the module database.
1502 .SP
1503 If all these conditions are true,
1504 .` "cvs release"
1505 leaves a
1506 record of its execution (attesting to your intentionally abandoning
1507 your checkout) in the
1508 .B cvs
1509 history log.
1510 .SP
1511 You can use the \fB\-d\fP flag to request that your working copies of
1512 the source files be deleted if the \fBrelease\fP succeeds.
1513 .TP
1514 \fBremove\fP [\fB\-lR\fP] [\fIfiles\|.\|.\|.\fP]
1515 .I Requires:
1516 Working directory.
1517 .br
1518 .I Changes:
1519 Working directory.
1520 .br
1521 .I Synonyms:
1522 .BR rm ", " delete
1523 .br
1524 Use this command to declare that you wish to remove \fIfiles\fP from
1525 the source repository.  Like most
1526 .B cvs
1527 commands,
1528 .` "cvs remove"
1529 works on files in your working
1530 directory, not directly on the repository.  As a safeguard, it also
1531 requires that you first erase the specified files from your working
1532 directory.
1533 .SP
1534 The files are not actually removed until you apply your changes to the
1535 repository with
1536 .BR commit ;
1537 at that point, the corresponding
1538 .SM RCS
1539 files in the source repository are
1540 .I moved
1541 into the
1542 .` "Attic"
1543 directory (also within the source repository).
1544 .SP
1545 This command is recursive by default, scheduling all physically removed
1546 files that it finds for removal by the next
1547 .BR commit .
1548 Use the
1549 .B \-l
1550 option to avoid this recursion, or just specify that actual files that you
1551 wish remove to consider.
1552 .TP
1553 \fBrtag\fP [\fB\-f\|alnRQq\fP] [\fB\-b\fP] [\fB\-d\fP] [\fB\-r\fP \fItag\fP | \fB\-D\fP \fIdate\fP] \fIsymbolic_tag\fP \fImodules\|.\|.\|.\fP
1554 .I Requires:
1555 repository.
1556 .br
1557 .I Changes:
1558 repository.
1559 .br
1560 .I Synonym:
1561 .B rfreeze
1562 .br
1563 You can use this command to assign symbolic tags to particular,
1564 explicitly specified source versions in the repository.
1565 .` "cvs rtag"
1566 works directly on the repository contents (and requires no
1567 prior
1568 .BR checkout ).
1569 Use
1570 .` "cvs tag"
1571 instead, to base the selection of
1572 versions to tag on the contents of your working directory.
1573 .SP
1574 In general, tags (often the symbolic names of software distributions)
1575 should not be removed, but the
1576 .B \-d
1577 option is available as a means to remove completely obsolete symbolic names
1578 if necessary (as might be the case for an Alpha release, say).
1579 .SP
1580 .` "cvs rtag"
1581 will not move a tag that already exists.  With the \fB\-F\fP option,
1582 however,
1583 .` "cvs rtag"
1584 will re-locate any instance of \fIsymbolic_tag\fP that already exists
1585 on that file to the new repository versions.  Without the \fB\-F\fP
1586 option, attempting to use
1587 .` "cvs rtag"
1588 to apply a tag that already exists on that file will produce an error
1589 message.
1590 .SP
1591 The \fB-b\fP option makes the tag a ``branch'' tag, allowing
1592 concurrent, isolated development.
1593 This is most useful for creating a patch to a previously released software
1594 distribution.
1595 .SP
1596 You can use the standard \fB\-r\fP and \fB\-D\fP options to tag only those
1597 files that already contain a certain tag.  This method would be used
1598 to rename a tag: tag only the files identified by the old tag, then delete the
1599 old tag, leaving the new tag on exactly the same files as the old tag.
1600 .SP
1601 .B rtag
1602 executes recursively by default, tagging all subdirectories of
1603 \fImodules\fP you specify in the argument.  You can restrict its
1604 operation to top-level directories with the standard \fB\-l\fP option;
1605 or you can explicitly request recursion with \fB\-R\fP.
1606 .SP
1607 The modules database can specify a program to execute whenever a tag
1608 is specified; a typical use is to send electronic mail to a group of
1609 interested parties.  If you want to bypass that program, use the
1610 standard \fB\-n\fP option.
1611 .SP
1612 Use the
1613 .B \-a
1614 option to have
1615 .B rtag
1616 look in the
1617 .` "Attic"
1618 for removed files that contain the specified tag.
1619 The tag is removed from these files, which makes it convenient to re-use a
1620 symbolic tag as development continues (and files get removed from the
1621 up-coming distribution).
1622 .TP
1623 \fBstatus\fP [\fB\-lRqQ\fP] [\fB\-v\fP] [\fIfiles\fP\|.\|.\|.]
1624 .I Requires:
1625 working directory, repository.
1626 .br
1627 .I Changes:
1628 nothing.
1629 .br
1630 Display a brief report on the current status of \fIfiles\fP with
1631 respect to the source repository, including any ``sticky'' tags,
1632 dates, or \fB\-k\fP options.  (``Sticky'' options will restrict how
1633 .` "cvs update"
1634 operates until you reset them; see the
1635 description of
1636 .` "cvs update \-A\|.\|.\|.".)
1637 .SP
1638 You can also use this command to anticipate the potential impact of a
1639 .` "cvs update"
1640 on your working source directory.  If you do
1641 not specify any \fIfiles\fP explicitly, reports are shown for all
1642 files that \fBcvs\fP has placed in your working directory.  You can
1643 limit the scope of this search to the current directory itself (not
1644 its subdirectories) with the standard \fB\-l\fP option flag; or you
1645 can explicitly request recursive status reports with the \fB\-R\fP
1646 option.
1647 .SP
1648 The
1649 .B \-v
1650 option causes the symbolic tags for the
1651 .SM RCS
1652 file to be displayed as well.
1653 .TP
1654 \fBtag\fP [\fB\-lQqR\fP] [\fB\-F\fP] [\fB\-b\fP] [\fB\-d\fP] [\fB\-r\fP \fItag\fP | \fB\-D\fP \fIdate\fP] [\fB\-f\fP] \fIsymbolic_tag\fP [\fIfiles\fP\|.\|.\|.\|]
1655 .I Requires:
1656 working directory, repository.
1657 .br
1658 .I Changes:
1659 repository.
1660 .br
1661 .I Synonym:
1662 .B freeze
1663 .br
1664 Use this command to assign symbolic tags to the nearest repository
1665 versions to your working sources.  The tags are applied immediately to
1666 the repository, as with \fBrtag\fP.
1667 .SP
1668 One potentially surprising aspect of the fact that \fBcvs tag\fP
1669 operates on the repository is that you are tagging the checked-in
1670 revisions, which may differ from locally modified files in your working
1671 directory.  If you want to avoid doing this by mistake, specify the
1672 \fB-c\fP option to \fBcvs tag\fP.  If there are any locally modified files, CVS
1673 will abort with an error before it tags any files.
1674 .SP
1675 One use for tags is to record a ``snapshot'' of the current sources
1676 when the software freeze date of a project arrives.  As bugs are fixed
1677 after the freeze date, only those changed sources that are to be part
1678 of the release need be re-tagged.
1679 .SP
1680 The symbolic tags are meant to permanently record which revisions of which
1681 files were used in creating a software distribution.
1682 The
1683 .BR checkout ,
1684 .B export
1685 and
1686 .B update
1687 commands allow you to extract an exact copy of a tagged release at any time in
1688 the future, regardless of whether files have been changed, added, or removed
1689 since the release was tagged.
1690 .SP
1691 You can use the standard \fB\-r\fP and \fB\-D\fP options to tag only those
1692 files that already contain a certain tag.  This method would be used
1693 to rename a tag: tag only the files identified by the old tag, then delete the
1694 old tag, leaving the new tag on exactly the same files as the old tag.
1695 .SP
1696 Specifying the \fB\-f\fP flag in addition to the \fB\-r\fP or \fB\-D\fP
1697 flags will tag those files named on the command line even if they do not
1698 contain the old tag or did not exist on the specified date.
1699 .SP
1700 By default (without a \fB\-r\fP or \fB\-D\fP flag)
1701 the versions to be tagged are supplied
1702 implicitly by the \fBcvs\fP records of your working files' history
1703 rather than applied explicitly.
1704 .SP
1705 If you use
1706 .` "cvs tag \-d \fIsymbolic_tag\fP\|.\|.\|.",
1707 the
1708 symbolic tag you specify is
1709 .I deleted
1710 instead of being added.  \fIWarning\fP: Be very certain of your ground
1711 before you delete a tag; doing this effectively discards some
1712 historical information, which may later turn out to have been valuable.
1713 .SP
1714 .` "cvs tag"
1715 will not move a tag that already exists.  With the \fB\-F\fP option,
1716 however,
1717 .` "cvs tag"
1718 will re-locate any instance of \fIsymbolic_tag\fP that already exists
1719 on that file to the new repository versions.  Without the \fB\-F\fP
1720 option, attempting to use
1721 .` "cvs tag"
1722 to apply a tag that already exists on that file will produce an error
1723 message.
1724 .SP
1725 The \fB-b\fP option makes the tag a ``branch'' tag, allowing
1726 concurrent, isolated development.
1727 This is most useful for creating a patch to a previously released software
1728 distribution.
1729 .SP
1730 Normally,
1731 .B tag
1732 executes recursively through subdirectories; you can prevent this by
1733 using the standard \fB\-l\fP option, or specify the recursion
1734 explicitly by using \fB\-R\fP.
1735 .TP
1736 \fBupdate\fP [\fB\-ACdf\|lPpQqR\fP] [\fB\-d\fP] [\fB\-r\fP \fItag\fP|\fB\-D\fP \fIdate\fP] \fIfiles\|.\|.\|.\fP
1737 .I Requires:
1738 repository, working directory.
1739 .br
1740 .I Changes:
1741 working directory.
1742 .br
1743 After you've run
1744 .B checkout
1745 to create your private copy of source from the common repository,
1746 other developers will continue changing the central source.  From time
1747 to time, when it is convenient in your development process, you can
1748 use the
1749 .B update
1750 command
1751 from within your working directory to reconcile your work with any
1752 revisions applied to  the source repository since your last
1753 .B checkout
1754 or
1755 .BR update .
1756 .SP
1757 .B update
1758 keeps you informed of its progress by printing a line for each file,
1759 prefaced with one of the characters
1760 .` "U P A R M C ?"
1761 to indicate the status of the file:
1762 .TP 1i
1763 \fBU\fP \fIfile\fP
1764 The file was brought \fIup to date\fP with respect to the repository.
1765 This is done for any file that exists in the repository but not in
1766 your source, and for files that you haven't changed but are not the most
1767 recent versions available in the repository.
1768 .TP 1i
1769 \fBP\fP \fIfile\fP
1770 Like \fBU\fP, but the CVS server sends a patch instead of an entire file.
1771 This accomplishes the same thing as \fBU\fP using less bandwidth.
1772 .TP 1i
1773 \fBA\fP \fIfile\fP
1774 The file has been \fIadded\fP to your private copy of the sources, and
1775 will be added to the
1776 source repository when you run
1777 .` "cvs commit"
1778 on the file.
1779 This is a reminder to you that the file needs to be committed.
1780 .TP 1i
1781 \fBR\fP \fIfile\fP
1782 The file has been \fIremoved\fP from your private copy of the sources, and
1783 will be removed from the
1784 source repository when you run
1785 .` "cvs commit"
1786 on the file.
1787 This is a reminder to you that the file needs to be committed.
1788 .TP 1i
1789 \fBM\fP \fIfile\fP
1790 The file is \fImodified\fP in your working directory.
1791 .` "M"
1792 can indicate one of two states for a file you're working on: either
1793 there were no modifications to the same file in the repository, so
1794 that your file remains as you last saw it; or there were modifications
1795 in the repository as well as in your copy, but they were
1796 \fImerged\fP successfully, without conflict, in your working
1797 directory.
1798 .TP 1i
1799 \fBC\fP \fIfile\fP
1800 A \fIconflict\fP was detected while trying to merge your changes to
1801 \fIfile\fP with changes from the source repository.  \fIfile\fP (the
1802 copy in your working directory) is now the result of merging
1803 the two versions; an unmodified copy of your file is also
1804 in your working directory, with the name `\fB.#\fP\fIfile\fP\fB.\fP\fIversion\fP',
1805 where
1806 .I version
1807 is the
1808 revision that your modified file started from.
1809 (Note that some systems automatically purge files that begin with
1810 \&
1811 .` ".#"
1812 if they have not been accessed for a few days.
1813 If you intend to keep a copy of your original file, it is a very good
1814 idea to rename it.)
1815 .TP 1i
1816 \fB?\fP \fIfile\fP
1817 \fIfile\fP is in your working directory, but does not correspond to
1818 anything in the source repository, and is not in the list of files
1819 for \fBcvs\fP to ignore (see the description of the \fB\-I\fP option).
1820 .PP
1821 .RS .5i
1822 .SP
1823 Use the
1824 .B \-A
1825 option to reset any sticky tags, dates, or
1826 .B \-k
1827 options.  (If you get a working copy of a file by using one of the
1828 \fB\-r\fP, \fB\-D\fP, or \fB\-k\fP options, \fBcvs\fP remembers the
1829 corresponding tag, date, or \fIkflag\fP and continues using it on
1830 future updates; use the \fB\-A\fP option to make \fBcvs\fP forget these
1831 specifications, and retrieve the ``head'' version of the file).
1832 .SP
1833 The \fB\-j\fP\fIbranch\fP option 
1834 merges the changes made between the
1835 resulting revision and the revision that it is based on (e.g., if
1836 the tag refers to a branch,
1837 .B cvs
1838 will merge all changes made in
1839 that branch into your working file).
1840 .SP
1841 With two \fB-j\fP options,
1842 .B cvs
1843 will merge in the changes between the two respective revisions.
1844 This can be used to ``remove'' a certain delta from your working file.
1845 E.g., If the file foo.c is based on
1846 revision 1.6 and I want to remove the changes made between 1.3 and
1847 1.5, I might do:
1848 .SP
1849 .in +1i
1850 .ft B
1851 .nf
1852 example% cvs update -j1.5 -j1.3 foo.c   # note the order...
1853 .fi
1854 .ft P
1855 .in -1i
1856 .SP
1857 In addition, each \fB-j\fP option can contain on optional date
1858 specification which, when used with branches, can limit the chosen
1859 revision to one within a specific date.
1860 An optional date is specified by adding a colon (:) to the tag.
1861 .SP
1862 .in +1i
1863 .ft B
1864 .nf
1865 -jSymbolic_Tag:Date_Specifier
1866 .fi
1867 .ft P
1868 .in -1i
1869 .SP
1870 Use the
1871 .B \-d
1872 option to create any directories that exist in the repository if they're
1873 missing from the working directory.  (Normally, update acts only on
1874 directories and files that were already enrolled in your
1875 working directory.)  This is useful for updating directories
1876 that were created in the repository since the initial
1877 \fBcheckout\fP; but it has an unfortunate side effect.  If you
1878 deliberately avoided certain directories in the repository when you
1879 created your working directory (either through use of a module name or by
1880 listing explicitly the files and directories you wanted on the
1881 command line), then updating with
1882 .B \-d
1883 will create those directories, which may not be what you want.
1884 .SP
1885 Use \fB\-I\fP \fIname\fP to ignore files whose names match \fIname\fP
1886 (in your working directory) during the update.  You can specify
1887 \fB\-I\fP more than once on the command line to specify several files
1888 to ignore.  By default,
1889 \fBupdate\fP ignores files whose names match certain patterns; for
1890 an up to date list of ignored file names, see the Cederqvist manual (as
1891 described in the SEE ALSO section of this manpage).
1892 .SP
1893 Use
1894 .` "\-I !"
1895 to avoid ignoring any files at all.
1896 .SP
1897 Use the
1898 .` "\-C"
1899 option to overwrite locally modified files with clean copies from
1900 the repository (the modified file is saved in
1901 `\fB.#\fP\fIfile\fP\fB.\fP\fIrevision\fP', however).
1902 .SP
1903 The standard \fBcvs\fP command options \fB\-f\fP, \fB\-k\fP,
1904 \fB\-l\fP, \fB\-P\fP, \fB\-p\fP, and \fB\-r\fP
1905 are also available with \fBupdate\fP.
1906 .RE
1907 .SH "FILES"
1908 For more detailed information on
1909 .B cvs
1910 supporting files, see
1911 .BR cvs ( 5 ).
1912 .LP
1913 .I
1914 Files in home directories:
1915 .TP
1916 \&.cvsrc
1917 The
1918 .B cvs
1919 initialization file.  Lines in this file can be used to specify default
1920 options for each
1921 .B cvs
1922 command.  For example the line
1923 .` "diff \-c"
1924 will ensure that
1925 .` "cvs diff"
1926 is always passed the
1927 .B \-c
1928 option in addition to any other options passed on the command line.
1929 .TP
1930 \&.cvswrappers
1931 Specifies wrappers to be used in addition to those specified in the
1932 CVSROOT/cvswrappers file in the repository.
1933 .LP
1934 .I
1935 Files in working directories:
1936 .TP
1937 CVS
1938 A directory of \fBcvs\fP administrative files.
1939 .I
1940 Do not delete.
1941 .TP
1942 CVS/Entries
1943 List and status of files in your working directory.
1944 .TP
1945 CVS/Entries.Backup
1946 A backup of
1947 .` "CVS/Entries".
1948 .TP
1949 CVS/Entries.Static
1950 Flag: do not add more entries on
1951 .` "cvs update".
1952 .TP
1953 CVS/Root
1954 Pathname to the repository (
1955 .SM CVSROOT
1956 ) location at the time of checkout.  This file is used instead
1957 of the
1958 .SM CVSROOT
1959 environment variable if the environment variable is not
1960 set.  A warning message will be issued when the contents of this
1961 file and the
1962 .SM CVSROOT
1963 environment variable differ.  The file may be over-ridden by the
1964 presence of the
1965 .SM CVS_IGNORE_REMOTE_ROOT
1966 environment variable.
1967 .TP
1968 CVS/Repository
1969 Pathname to the corresponding directory in the source repository.
1970 .TP
1971 CVS/Tag
1972 Contains the per-directory ``sticky'' tag or date information.
1973 This file is created/updated when you specify
1974 .B \-r
1975 or
1976 .B \-D
1977 to the
1978 .B checkout
1979 or
1980 .B update
1981 commands, and no files are specified.
1982 .TP
1983 CVS/Checkin.prog
1984 Name of program to run on
1985 .` "cvs commit".
1986 .TP
1987 CVS/Update.prog
1988 Name of program to run on
1989 .` "cvs update".
1990 .LP
1991 .I
1992 Files in source repositories:
1993 .TP
1994 $CVSROOT/CVSROOT
1995 Directory of global administrative files for repository.
1996 .TP
1997 CVSROOT/commitinfo,v
1998 Records programs for filtering
1999 .` "cvs commit"
2000 requests.
2001 .TP
2002 CVSROOT/cvswrappers,v
2003 Records
2004 .B cvs
2005 wrapper commands to be used when checking files into and out of the
2006 repository.  Wrappers allow the file or directory to be processed
2007 on the way in and out of CVS.  The intended uses are many, one
2008 possible use would be to reformat a C file before the file is checked
2009 in, so all of the code in the repository looks the same.
2010 .TP
2011 CVSROOT/editinfo,v
2012 Records programs for editing/validating
2013 .` "cvs commit"
2014 log entries.
2015 .TP
2016 CVSROOT/history
2017 Log file of \fBcvs\fP transactions.
2018 .TP
2019 CVSROOT/loginfo,v
2020 Records programs for piping
2021 .` "cvs commit"
2022 log entries.
2023 .TP
2024 CVSROOT/modules,v
2025 Definitions for modules in this repository.
2026 .TP
2027 CVSROOT/rcsinfo,v
2028 Records pathnames to templates used during a
2029 .` "cvs commit"
2030 operation.
2031 .TP
2032 CVSROOT/taginfo,v
2033 Records programs for validating/logging
2034 .` "cvs tag"
2035 and
2036 .` "cvs rtag"
2037 operations.
2038 .TP
2039 MODULE/Attic
2040 Directory for removed source files.
2041 .TP
2042 #cvs.lock
2043 A lock directory created by
2044 .B cvs
2045 when doing sensitive changes to the
2046 source repository.
2047 .TP
2048 #cvs.tfl.\fIpid\fP
2049 Temporary lock file for repository.
2050 .TP
2051 #cvs.rfl.\fIpid\fP
2052 A read lock.
2053 .TP
2054 #cvs.wfl.\fIpid\fP
2055 A write lock.
2056 .SH "ENVIRONMENT"
2057 .TP
2058 .SM CVSROOT
2059 Should contain the full pathname to the root of the
2060 .B cvs
2061 source repository (where the
2062 .SM RCS
2063 files are kept).  This information must be available to \fBcvs\fP for
2064 most commands to execute; if
2065 .SM CVSROOT
2066 is not set, or if you wish to override it for one invocation, you can
2067 supply it on the command line:
2068 .` "cvs \-d \fIcvsroot cvs_command\fP\|.\|.\|."
2069 You may not need to set
2070 .SM CVSROOT
2071 if your \fBcvs\fP binary has the right path compiled in.
2072 .TP
2073 .SM CVSREAD
2074 If this is set,
2075 .B checkout
2076 and
2077 .B update
2078 will try hard to make the files in your working directory read-only.
2079 When this is not set, the default behavior is to permit modification
2080 of your working files.
2081 .TP
2082 .SM CVSREADONLYFS
2083 If this is set, the
2084 .B \-R
2085 option is assumed, and
2086 .B cvs
2087 operates in read-only repository mode.
2088 .TP
2089 .SM RCSBIN
2090 Specifies the full pathname where to find
2091 .SM RCS
2092 programs, such as
2093 .BR co ( 1 )
2094 and
2095 .BR ci ( 1 )
2096 (CVS 1.9 and older).
2097 .TP
2098 .SM CVSEDITOR
2099 Specifies the program to use for recording log messages during
2100 .BR commit .
2101 If not set, the
2102 .SM VISUAL
2103 and
2104 .SM EDITOR
2105 environment variables are tried (in that order).
2106 If neither is set, a system-dependent default editor (e.g.,
2107 .BR vi )
2108 is used.
2109 .TP
2110 .SM CVS_CLIENT_PORT
2111 If this variable is set then
2112 .B cvs
2113 will use this port in
2114 \fIpserver mode\fP
2115 rather than the default port (cvspserver 2401).
2116 .TP
2117 .SM CVS_IGNORE_REMOTE_ROOT
2118 If this variable is set then
2119 .B cvs
2120 will ignore all references to remote repositories in the CVS/Root file.
2121 .TP
2122 .SM CVS_OPTIONS
2123 Specifies a set of default options for
2124 .B cvs.
2125 These options are interpreted before the startup file (\fI~/.cvsrc\fP) is read
2126 and can be overridden by explicit command line parameters.
2127 .TP
2128 .SM CVS_RSH
2129 .B cvs
2130 uses the contents of this variable to determine the name of the
2131 remote shell command to use when starting a
2132 .B cvs
2133 server.  If this variable is not set then
2134 .` "ssh"
2135 is used.
2136 .TP
2137 .SM CVS_SERVER
2138 .B cvs 
2139 uses the contents of this variable to determine the name of the
2140 .B cvs
2141 server command.  If this variable is not set then
2142 .` "cvs"
2143 is used.
2144 .TP
2145 .SM CVSWRAPPERS
2146 This variable is used by the
2147 .` "cvswrappers"
2148 script to determine the name of the wrapper file, in addition to the
2149 wrappers defaults contained in the repository
2150 .SM (CVSROOT/cvswrappers)
2151 and the user's home directory (~/.cvswrappers).
2152 .SH "AUTHORS"
2153 .TP
2154 Dick Grune
2155 Original author of the
2156 .B cvs
2157 shell script version posted to
2158 .B comp.sources.unix
2159 in the volume6 release of December, 1986.
2160 Credited with much of the
2161 .B cvs
2162 conflict resolution algorithms.
2163 .TP
2164 Brian Berliner
2165 Coder and designer of the
2166 .B cvs
2167 program itself in April, 1989, based on the original work done by Dick.
2168 .TP
2169 Jeff Polk
2170 Helped Brian with the design of the
2171 .B cvs
2172 module and vendor branch support and author of the
2173 .BR checkin ( 1 )
2174 shell script (the ancestor of
2175 .` "cvs import").
2176 .TP
2177 And many others too numerous to mention here.
2178 .SH "SEE ALSO"
2179 The most comprehensive manual for CVS is
2180 Version Management with CVS by Per Cederqvist et al.  Depending on
2181 your system, you may be able to get it with the
2182 .B info cvs
2183 command or it may be available as cvs.ps (postscript), cvs.texinfo
2184 (texinfo source), or cvs.html.
2185 .SP
2186 For CVS updates, more information on documentation, software related
2187 to CVS, development of CVS, and more, see:
2188 .in +1i
2189 .B http://cvshome.org
2190 .B http://www.loria.fr/~molli/cvs-index.html
2191 .in -1i
2192 .SP
2193 .BR ci ( 1 ),
2194 .BR co ( 1 ),
2195 .BR cvs ( 5 ),
2196 .BR cvsbug ( 8 ),
2197 .BR diff ( 1 ),
2198 .BR grep ( 1 ),
2199 .BR patch ( 1 ),
2200 .BR rcs ( 1 ),
2201 .BR rcsdiff ( 1 ),
2202 .BR rcsmerge ( 1 ),
2203 .BR rlog ( 1 ).