5 .Id cvs.1,v 1.12 1992/04/10 03:05:16 berliner Exp
7 .\" Full space in nroff; half space in troff
14 .RB ` "\|\\$1\|" '\\$2
17 cvs \- Concurrent Versions System
20 \fBcvs\fP [ \fIcvs_options\fP ]
28 .IX "revision control system" "\fLcvs\fR"
29 .IX cvs "" "\fLcvs\fP \- concurrent versions system"
30 .IX "concurrent versions system \- \fLcvs\fP"
31 .IX "release control system" "cvs command" "" "\fLcvs\fP \- concurrent versions system"
32 .IX "source control system" "cvs command" "" "\fLcvs\fP \- concurrent versions system"
33 .IX revisions "cvs command" "" "\fLcvs\fP \- source control"
37 revision control system which extends
38 the notion of revision control from a collection of files in a single
39 directory to a hierarchical collection of directories consisting of
40 revision controlled files.
41 These directories and files can be combined together to form a software
44 provides the functions necessary to manage these software releases and to
45 control the concurrent editing of source files among multiple software
49 keeps a single copy of the master sources.
50 This copy is called the source ``repository''; it contains all the
51 information to permit extracting previous software releases at any
52 time based on either a symbolic revision tag, or a date in the past.
53 .SH "ESSENTIAL COMMANDS"
55 provides a rich variety of commands (\fIcvs_command\fP in the
56 Synopsis), each of which often has a wealth of options, to satisfy the
57 many needs of source management in distributed environments. However,
58 you don't have to master every detail to do useful work with
60 in fact, five commands are sufficient to use (and contribute to)
61 the source repository.
63 \fBcvs checkout\fP \fImodules\fP\|.\|.\|.
64 A necessary preliminary for most \fBcvs\fP work: creates your private
65 copy of the source for \fImodules\fP (named collections of source; you
66 can also use a path relative to the source repository here). You can
67 work with this copy without interfering with others' work. At least
68 one subdirectory level is always created.
71 Execute this command from \fIwithin\fP your private source
72 directory when you wish to update your copies of source files from
73 changes that other developers have made to the source in the
76 \fBcvs add\fP \fIfile\fP\|.\|.\|.
77 Use this command to enroll new files in \fBcvs\fP records of your
78 working directory. The files will be added to the repository the next
84 command to bootstrap new sources into the source repository.
86 is only used for new files to an already checked-out module.
88 \fBcvs remove\fP \fIfile\fP\|.\|.\|.
89 Use this command (after erasing any files listed) to declare that you
90 wish to eliminate files from the repository. The removal does not
91 affect others until you run
94 \fBcvs commit\fP \fIfile\fP\|.\|.\|.
95 Use this command when you wish to ``publish'' your changes to other
96 developers, by incorporating them in the source repository.
100 command line can include
102 which apply to the overall
106 which specifies a particular action on the source repository; and
110 to fully specify what the
115 you must be careful of precisely where you place options relative to the
117 The same option can mean different things depending on whether it
120 position (to the left of a
124 position (to the right of a
128 There are only two situations where you may omit
131 elicits a list of available commands, and
133 displays version information on \fBcvs\fP itself.
136 Use these options to control the overall
141 Display usage information about the specified
143 (but do not actually execute the command). If you don't specify a
146 displays a summary of all the commands available.
149 Causes the command to be
151 quiet; the command will generate output only for serious problems.
154 Causes the command to be somewhat quiet; informational messages, such
155 as reports of recursion through subdirectories, are suppressed.
157 \fB\-b\fP \fIbindir\fP
160 as the directory where
162 programs are located.
163 Overrides the setting of the
165 environment variable.
166 This value should be specified as an absolute pathname.
168 \fB\-d\fP \fICVS_root_directory\fP
170 .I CVS_root_directory
171 as the root directory pathname of the master
174 Overrides the setting of the
176 environment variable.
177 This value should be specified as an absolute pathname.
179 \fB\-e\fP \fIeditor\fP
182 to enter revision log information.
183 Overrides the setting of the
185 environment variable.
190 in the command history (but execute it anyway). See the description
193 command for information on command history.
196 Do not change any files. Attempt to execute the
198 but only to issue reports; do not remove, update, or merge any
199 existing files, or create any new files.
202 Trace program execution; display messages showing the steps of
204 activity. Particularly useful with
206 to explore the potential impact of an unfamiliar command.
209 Makes new working files files read-only.
210 Same effect as if the
212 environment variable is set.
215 Displays version and copyright information for
219 Makes new working files read-write (default).
220 Overrides the setting of the
222 environment variable.
224 Except when requesting general help with
230 to select a specific release control function to perform.
233 command accepts its own collection of options and arguments.
234 However, many options are available across several commands.
235 You can display a usage summary for each command by specifying the
237 option with the command.
238 .SH "CVS COMMAND SUMMARY"
239 Here are brief descriptions of all the
244 Add a new file or directory to the repository, pending a
247 Can only be done from within sources created by a previous
252 to place whole new hierarchies of sources under
255 (Does not directly affect repository; changes
261 control functions on the source repository. (Changes
262 repository directly; uses working directory without changing it.)
265 Make a working directory of source files for editing. (Creates or changes
269 Apply to the source repository changes, additions, and deletions from your
270 working directory. (Changes repository.)
273 Show differences between files in working directory and source
274 repository, or between two revisions in source repository.
275 (Does not change either repository or working directory.)
278 Prepare copies of a set of source files for shipment off site.
283 administrative directories are created (and therefore
285 cannot be executed from a directory prepared with
287 and a symbolic tag must be specified.
288 (Does not change repository; creates directory similar to working
294 commands that you or others have executed on a particular file or
295 directory in the source repository. (Does not change repository or
296 working directory.) History logs are kept only if enabled by creation
298 .` "$CVSROOT/CVSROOT/history"
303 Incorporate a set of updates from off-site into the source repository,
304 as a ``vendor branch''. (Changes repository.)
310 (Does not change repository or working directory.)
313 Prepare a collection of diffs as a patch file between two releases in
314 the repository. (Does not change repository or working directory.)
319 abandoning any changes.
320 (Can delete working directory; no effect on repository.)
323 Remove files from the source repository, pending a
325 on the same files. (Does not directly affect repository;
326 changes working directory.)
329 Explicitly specify a symbolic tag for particular revisions of files in the
330 source repository. See also
332 (Changes repository directly; does not require or affect
336 Show current status of files: latest version, version in working
337 directory, whether working version has been edited and, optionally,
340 file. (Does not change
341 repository or working directory.)
344 Specify a symbolic tag for files in the repository. Tags the revisions
345 that were last synchronized with your working directory. (Changes
346 repository directly; uses working directory without changing it.)
349 Bring your working directory up to date with changes from the
350 repository. Merges are performed automatically when possible; a
351 warning is issued if manual resolution is required for conflicting
352 changes. (Changes working directory; does not change repository.)
353 .SH "COMMON COMMAND OPTIONS"
354 This section describes the
356 that are available across several
358 commands. Not all commands support all of these options; each option
359 is only supported for commands where it makes sense. However, when
360 a command has one of these options you can count on the same meaning
361 for the option as in other commands. (Other command
362 options, which are listed with the individual commands, may have
363 different meanings from one
369 command is an exception;
370 it supports many options that conflict
371 even with these standard options.
373 \fB\-D\fP \fIdate_spec\fP
374 Use the most recent revision no later than \fIdate_spec\fP (a single
375 argument, date description specifying a date in the
376 past). A wide variety of date formats are supported by the underlying
378 facilities, similar to those described in
380 but not exactly the same.
381 The \fIdate_spec\fP is interpreted as being in the local timezone, unless a
382 specific timezone is specified.
383 The specification is ``sticky'' when you use it to make a
384 private copy of a source file; that is, when you get a working file
385 using \fB\-D\fP, \fBcvs\fP records the date you
386 specified, so that further updates in the same directory will use the
387 same date (unless you explicitly override it; see the description of
388 the \fBupdate\fP command).
390 is available with the
391 .BR checkout ", " diff, ", " history ", " export ", "
392 .BR rdiff ", " rtag ", and "
395 Examples of valid date specifications include:
407 January 23, 1987 10:05pm
414 When you specify a particular date or tag to \fBcvs\fP commands, they
415 normally ignore files that do not contain the tag (or did not exist on
416 the date) that you specified. Use the \fB\-f\fP option if you want
417 files retrieved even when there is no match for the tag or date. (The
418 most recent version is used in this situation.)
420 is available with these commands:
421 .BR checkout ", " export ", "
422 .BR rdiff ", " rtag ", and " update .
425 Help; describe the options available for this command. This is the
426 only option supported for
431 \fB\-k\fP \fIkflag\fP
434 processing of keywords; all the
438 are available. The \fB\-k\fP option is available with the
439 .BR add ", " checkout ", " diff ", "
440 .RB rdiff ", and " update
441 commands. Your \fIkflag\fP specification is ``sticky'' when you use
442 it to create a private copy of a source file; that is, when you use
443 this option with the \fBcheckout\fP or \fBupdate\fP commands,
444 \fBcvs\fP associates your selected \fIkflag\fP with the file, and
445 continues to use it with future \fBupdate\fP commands on the same file
446 until you specify otherwise.
449 Local; run only in current working directory, rather than recurring through
450 subdirectories. Available with the following commands:
451 .BR checkout ", " commit ", " diff ", "
452 .BR export ", " remove ", " rdiff ", " rtag ", "
453 .BR status ", " tag ", and " update .
458 option, which you can specify to the
468 .BR checkout / commit / tag / update
469 program. (A program can be specified to run on each of these
470 activities, in the modules database; this option bypasses it.)
472 .BR checkout ", " commit ", " export ", and "
479 option, which you can specify to the
486 Prune (remove) directories that are empty after being updated, on
487 .BR checkout ", or " update .
488 Normally, an empty directory (one that is void of revision-controlled
489 files) is left alone.
492 will cause these directories to be silently removed from your checked-out
494 This does not remove the directory from the repository, only from your
496 Note that this option is implied by the
501 .BR checkout " and " export .
504 Pipe the files retrieved from the repository to standard output,
505 rather than writing them in the current directory. Available with the
506 .BR checkout " and " update
510 Causes the command to be
512 quiet; the command will generate output only for serious problems.
513 Available with the following commands:
514 .BR checkout ", " import ", " export ", "
515 .BR rdiff ", " rtag ", "
516 .BR tag ", and " update .
519 Causes the command to be somewhat quiet; informational messages, such
520 as reports of recursion through subdirectories, are suppressed.
521 Available with the following commands:
522 .BR checkout ", " import ", " export ", "
524 .BR tag ", and " update .
527 Use the revision specified by the
529 argument instead of the default ``head'' revision. As well as
530 arbitrary tags defined with the \fBtag\fP or \fBrtag\fP command, two
531 special tags are always available:
534 recent version available in the repository, and
536 refers to the revision you last checked out into the current working
539 The \fItag\fP specification is ``sticky'' when you use
545 make your own copy of a file: \fBcvs\fP remembers the \fItag\fP and
546 continues to use it on future \fBupdate\fP commands, until you specify
549 can be either a symbolic or numeric tag, in
554 option along with the
556 option is often useful, to suppress the warning messages when the
558 file does not contain the specified tag.
560 is available with the
561 .BR checkout ", " commit ", " diff ", "
562 .BR history ", " export ", "
563 .BR rdiff ", " rtag ", and " update
569 option, which you can specify to the
575 Here (finally) are details on all the
577 commands and the options each accepts. The summary lines at the top
578 of each command's description highlight three kinds of things:
580 \ \ \ \ Command Options and Arguments
581 Special options are described in detail below; common command options
582 may appear only in the summary line.
584 \ \ \ \ Working Directory, or Repository?
585 Some \fBcvs\fP commands require a working directory to operate; some
586 require a repository. Also, some commands \fIchange\fP the
587 repository, some change the working directory, and some change
591 Many commands have synonyms, which you may find easier to
592 remember (or type) than the principal name.
595 \fBadd\fP [\fB\-k\fP \fIkflag\fP] [\fB\-m '\fP\fImessage\fP\fB'\fP] \fIfiles.\|.\|.\fP
597 repository, working directory.
607 command to create a new file or directory in the
610 The files or directories specified with
612 must already exist in the current directory (which must have been created
616 To add a whole new directory hierarchy to the source repository
617 (for example, files received from a third-party vendor), use the
623 refers to an immediate sub-directory, the directory is
624 created at the correct place in the
626 source repository, and the necessary
628 administration files are created in your working directory.
629 If the directory already exists in the source repository,
631 still creates the administration files in your version of the directory.
632 This allows you to use
634 to add a particular directory to your private sources even if
635 someone else created that directory after your
637 of the sources. You can do the following:
642 example% mkdir new_directory
643 example% cvs add new_directory
644 example% cvs update new_directory
649 An alternate approach using
656 example% cvs update -d new_directory
661 (To add \fIany available\fP new directories to your working directory, it's
662 probably simpler to use
667 The added files are not placed in the
669 source repository until you use
671 to make the change permanent.
674 on a file that was removed with the
676 command will resurrect the file, if no
680 You will have the opportunity to specify a logging message, as usual,
683 to make the new file permanent. If you'd like to have another
684 logging message associated with just
686 of the file (for example, to describe the file's purpose), you can
688 .` "\-m \fImessage\fP"
695 option specifies the default way that this
696 file will be checked out.
699 argument is stored in the
701 file and can be changed with
705 is useful for checking in binaries that
710 \fBadmin\fP [\fIrcs-options\fP] \fIfiles.\|.\|.\fP
712 repository, working directory.
722 interface to assorted administrative
724 facilities, documented in
727 simply passes all its options and arguments to the
729 command; it does no filtering or other processing.
730 This command does work recursively, however, so extreme care should be
733 \fBcheckout\fP [\fBoptions\fP] \fImodules\fP.\|.\|.
743 Make a working directory containing copies of the source files specified by
747 before using most of the other
749 commands, since most of them operate on your working directory.
751 \fImodules\fP are either symbolic names (themselves defined as the
754 in the source repository; see
756 for some collection of source directories and files, or paths to
757 directories or files in the repository.
763 may recursively create directories and populate them with the appropriate
765 You can then edit these source files at any time (regardless of whether
766 other software developers are editing their own copies of the sources);
767 update them to include new changes applied by others to the source
768 repository; or commit your work as a permanent change to the
774 is used to create directories.
775 The top-level directory created is always added to the directory
778 is invoked, and usually has the same name as the specified
782 alias, the created sub-directory may have a different name, but you can be
783 sure that it will be a sub-directory, and that
785 will show the relative path leading to each file as it is extracted into
786 your private work area (unless you specify the
792 on a directory that was already built by a prior
794 is also permitted, and
795 has the same effect as specifying the
799 command described below.
805 include the standard command options
806 .BR \-P ", " \-Q ", " \-f ", "
809 .BR \-l ", " \-n ", " \-p ", "
815 In addition to those, you can use these special command options
821 option to reset any sticky tags, dates, or
823 options. (If you get a working file using one of the
824 \fB\-r\fP, \fB\-D\fP, or \fB\-k\fP options, \fBcvs\fP remembers the
825 corresponding tag, date, or \fIkflag\fP and continues using it on
826 future updates; use the \fB\-A\fP option to make \fBcvs\fP forget these
827 specifications, and retrieve the ``head'' version of the file).
831 option merges the changes made between the
832 resulting revision and the revision that it is based on (e.g., if
833 the tag refers to a branch,
835 will merge all changes made in that branch into your working file).
837 With two \fB-j\fP options,
839 will merge in the changes between the two respective revisions.
840 This can be used to ``remove'' a certain delta from your working file.
842 In addition, each \fB-j\fP option can contain on optional date
843 specification which, when used with branches, can limit the chosen
844 revision to one within a specific date.
845 An optional date is specified by adding a colon (:) to the tag.
846 An example might be what
848 tells you to do when you have
849 just imported sources that have conflicts with local changes:
854 example% cvs checkout -jTAG:yesterday -jTAG module
863 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.)
867 option to copy the module file, sorted, to the standard output,
868 instead of creating or modifying any files or directories in your
873 option to create a directory called
875 for the working files, instead of using the module name. Unless you
876 also use \fB\-N\fP, the paths created under \fIdir\fP will be as short
881 option to display per-module status information stored with
884 option within the modules file.
886 \fBcommit\fP [\fB\-lnR\fP] [\fB\-m\fP '\fIlog_message\fP' | \fB\-f\fP \fIfile\fP] [\fB\-r\fP \fIrevision\fP] [\fIfiles.\|.\|.\fP]
888 working directory, repository.
898 when you want to incorporate changes from your working source
899 files into the general source repository.
901 If you don't specify particular \fIfiles\fP to commit, all
902 of the files in your working current directory are examined.
904 is careful to change in the repository only those files that you have
905 really changed. By default (or if you explicitly specify the
908 in subdirectories are also examined and committed if they have
909 changed; you can use the
913 to the current directory only.
916 verifies that the selected files are up to date with the current revisions
917 in the source repository; it will notify you, and exit without
918 committing, if any of the specified files must be made current first
924 command for you, but rather leaves that for you to do when
927 When all is well, an editor is invoked to allow you to enter a log
928 message that will be written to one or more logging programs and placed in the
930 source repository file.
931 You can instead specify the log message on the command line with the
933 option, thus suppressing the editor invocation, or use the
935 option to specify that the argument \fIfile\fP contains the log message.
939 option can be used to commit to a particular symbolic or numeric revision
943 For example, to bring all your files up to the
945 revision ``3.0'' (including those that haven't changed), you might do:
950 example% cvs commit -r3.0
956 will only allow you to commit to a revision that is on the main trunk (a
957 revision with a single dot).
958 However, you can also commit to a branch revision (one that has an even
959 number of dots) with the
962 To create a branch revision, one typically use the
967 .BR checkout " or " update
968 can be used to base your sources on the newly created branch.
969 From that point on, all
971 changes made within these working sources will be automatically added
972 to a branch revision, thereby not perturbing main-line development in any
974 For example, if you had to create a patch to the 1.2 version of the
975 product, even though the 2.0 version is already under development, you
981 example% cvs rtag -b -rFCS1_2 FCS1_2_Patch product_module
982 example% cvs checkout -rFCS1_2_Patch product_module
983 example% cd product_module
990 Say you have been working on some extremely experimental software, based on
991 whatever revision you happened to checkout last week.
992 If others in your group would like to work on this software with you, but
993 without disturbing main-line development, you could commit your change to a
995 Others can then checkout your experimental stuff and utilize the full
999 The scenario might look like:
1004 example% cvs tag -b EXPR1
1005 example% cvs update -rEXPR1
1012 Others would simply do
1013 .` "cvs checkout -rEXPR1 whatever_module"
1014 to work with you on the experimental change.
1016 \fBdiff\fP [\fB\-kl\fP] [\fIrcsdiff_options\fP] [[\fB\-r\fP \fIrev1\fP | \fB\-D\fP \fIdate1\fP] [\fB\-r\fP \fIrev2\fP | \fB\-D\fP \fIdate2\fP]] [\fIfiles.\|.\|.\fP]
1018 working directory, repository.
1023 You can compare your working files with revisions in the source
1024 repository, with the
1026 command. If you don't specify a particular revision, your files
1027 are compared with the revisions they were based on. You can also use
1032 to specify a particular revision to compare your files with. Finally,
1035 twice, you can see differences between two revisions in the
1037 You can also specify
1039 options to diff against a revision in the past.
1044 options can be mixed together with at most two options ever specified.
1048 for a list of other accepted options.
1050 If you don't specify any files,
1052 will display differences for all those files in the current directory
1053 (and its subdirectories, unless you use the standard option
1056 differ from the corresponding revision in the source repository
1059 have changed), or that differ from the revision specified.
1061 \fBexport\fP [\-\fBf\|lNnQq\fP] \fB\-r\fP \fIrev\fP\||\|\fB\-D\fP \fIdate\fP [\fB\-d\fP \fIdir\fP] \fImodule\fP.\|.\|.
1068 This command is a variant of
1070 use it when you want a copy of the source for \fImodule\fP
1071 without the \fBcvs\fP administrative directories. For example, you
1074 to prepare source for shipment
1075 off-site. This command \fIrequires\fP that you specify a date or tag
1076 (with \fB\-D\fP or \fB\-r\fP), so that you can count on reproducing
1077 the source you ship to others.
1079 The only non-standard options are
1082 source into directory \fIdir\fP) and
1086 These have the same meanings as the same options in
1091 option is always set when
1096 keywords to be expanded such that an
1098 done at some other site will not lose the keyword revision information.
1099 There is no way to override this.
1101 \fBhistory\fP [\fB\-\fP\fIreport\fP] [\fB\-\fP\fIflags\fP] [\fB\-\fP\fIoptions args\fP] [\fIfiles\fP.\|.\|.]
1104 .` "$CVSROOT/CVSROOT/history"
1109 \fBcvs\fP keeps a history file that tracks each use of the
1110 \fBcheckout\fP, \fBcommit\fP, \fBrtag\fP, \fBupdate\fP, and \fBrelease\fP
1111 commands. You can use
1114 information in various formats.
1124 in ways that conflict with the
1127 COMMON COMMAND OPTIONS\c
1130 Several options (shown above as \fB\-\fP\fIreport\fP) control what
1131 kind of report is generated:
1134 Report on each time \fBcommit\fP was used (i.e., each time the
1135 repository was modified).
1137 \fB\ \ \ \ \ \ \-m\fP \fImodule\fP
1138 Report on a particular \fImodule\fP. (You can meaningfully use
1139 \fB\-m\fP more than once on the command line.)
1142 Report on checked-out modules.
1147 \fB\ \ \ \ \ \ \-x\fP \fItyp\fP
1148 Extract a particular set of record types \fIX\fP from the \fBcvs\fP
1149 history. The types are indicated by single letters, which you may
1150 specify in combination.
1151 Certain commands have a single record type: \fBcheckout\fP (type `O'),
1152 \fBrelease\fP (type `F'), and \fBrtag\fP (type `T'). One of four
1153 record types may result from an \fBupdate\fP: `W', when the working copy
1154 of a file is deleted during update (because it was gone from the
1155 repository); `U', when a working file was copied from the
1156 repository; `G', when a merge was necessary and it succeeded; and 'C',
1157 when a merge was necessary but collisions were detected (requiring
1158 manual merging). Finally, one of three record types results from
1159 \fBcommit\fP: `M', when a file was modified; `A', when a file is first
1160 added; and `R', when a file is removed.
1163 Everything (all record types); equivalent to specifying
1167 The options shown as \fB\-\fP\fIflags\fP constrain the report without
1168 requiring option arguments:
1172 Show data for all users (the default is to show data only for the user
1177 Show last modification only.
1180 Show only the records for modifications done from the same working
1186 The options shown as \fB\-\fP\fIoptions args\fP constrain the report
1187 based on an argument:
1190 \fB\ \ \ \ \ \ \-b\fP \fIstr\fP
1191 Show data back to a record containing the string \fIstr\fP in either
1192 the module name, the file name, or the repository path.
1194 \fB\ \ \ \ \ \ \-D\fP \fIdate\fP
1195 Show data since \fIdate\fP.
1197 \fB\ \ \ \ \ \ \-p\fP \fIrepository\fP
1198 Show data for a particular source repository (you can specify several
1199 \fB\-p\fP options on the same command line).
1201 \fB\ \ \ \ \ \ \-r\fP \fIrev\fP
1202 Show records referring to revisions since the revision or tag
1203 named \fIrev\fP appears in individual RCS files.
1206 file is searched for the revision or tag.
1208 \fB\ \ \ \ \ \ \-t\fP \fItag\fP
1209 Show records since tag \fItag\fP was last added to the the history file.
1210 This differs from the \fB-r\fP flag above in that it reads
1211 only the history file, not the
1213 files, and is much faster.
1215 \fB\ \ \ \ \ \ \-u\fP \fIname\fP
1216 Show records for user \fIname\fP.
1219 \fBimport\fP [\fB\-\fP\fIoptions\fP] \fIrepository vendortag releasetag\fP.\|.\|.
1221 Repository, source distribution directory.
1228 to incorporate an entire source
1229 distribution from an outside source (e.g., a source vendor) into your
1230 source repository directory. You can use this command both for
1231 initial creation of a repository, and for wholesale updates to the
1232 module form the outside source.
1234 The \fIrepository\fP argument gives a directory name (or a path to a
1235 directory) under the CVS root directory for repositories; if the
1236 directory did not exist, \fBimport\fP creates it.
1238 When you use \fBimport\fP for updates to source that has been modified in your
1239 source repository (since a prior \fBimport\fP), it
1240 will notify you of any files that conflict in the two branches of
1242 .` "cvs checkout -j"
1243 to reconcile the differences, as \fBimport\fP instructs you to do.
1245 By default, certain file names are ignored during
1247 names associated with
1249 administration, or with other common source control systems; common
1250 names for patch files, object files, archive files, and editor backup
1251 files; and other names that are usually artifacts of assorted utilities.
1252 Currently, the default list of ignored files includes files matching
1261 \&.make.state .nse_depinfo
1263 *.old *.bak *.orig *.rej .del\-*
1264 *.a *.o *.Z *.elc *.ln core
1269 The outside source is saved in a first-level
1273 Updates are leaves of this
1274 branch; for example, files from the first imported collection of
1275 source will be revision
1277 then files from the first
1278 imported update will be revision
1282 At least three arguments are required. \fIrepository\fP is needed to
1283 identify the collection of source. \fIvendortag\fP is a tag for the
1284 entire branch (e.g., for
1286 You must also specify at
1287 least one \fIreleasetag\fP to identify the files at the leaves created
1288 each time you execute
1291 Three of the standard
1293 command options are available: \fB\-Q\fP, \fB\-q\fP, and \fB\-m\fP
1294 \fImessage\fP. If you do not specify a logging message with
1295 \fB\-m\fP, your editor is invoked (as with \fBcommit\fP) to allow you
1298 There are two additional special options.
1301 .` "\-b \fIbranch\fP"
1302 to specify a first-level branch other
1308 to specify file names that should be
1309 ignored during \fBimport\fP. You can use this option repeatedly.
1310 To avoid ignoring any files at all (even those ignored by default),
1314 \fBlog\fP [\fB\-l\fP] \fIrlog-options [files\fP\|.\|.\|.]
1316 repository, working directory.
1324 Display log information for \fIfiles\fP.
1329 utility \fBrlog\fP; all the options described in
1331 are available. Among the more useful \fBrlog\fP options are \fB\-h\fP
1332 to display only the header (including tag definitions, but omitting
1333 most of the full log); \fB\-r\fP to select logs on particular
1334 revisions or ranges of revisions; and \fB\-d\fP to select particular
1335 dates or date ranges. See
1337 for full explanations.
1338 This command is recursive by default, unless the
1340 option is specified.
1342 \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
1352 Builds a Larry Wall format
1354 file between two releases, that can be fed directly into the
1356 program to bring an old release up-to-date with the new release.
1357 (This is one of the few \fBcvs\fP commands that operates directly from
1358 the repository, and doesn't require a prior
1360 The diff output is sent to the standard output device.
1361 You can specify (using the standard \fB\-r\fP and \fB\-D\fP options)
1362 any combination of one or two revisions or dates.
1363 If only one revision or date is specified, the
1364 patch file reflects differences between that revision or date and the
1365 current ``head'' revisions in the
1369 Note that if the software release affected
1370 is contained in more than one directory, then it may be necessary to
1375 command when patching the old sources, so that
1377 is able to find the files that are located in other directories.
1379 If you use the option \fB\-V\fP \fIvn\fP,
1381 keywords are expanded according to the rules current in
1383 version \fIvn\fP (the expansion format changed with
1387 The standard option \fIflags\fP \fB\-f\fP, \fB\-l\fP, \fB\-Q\fP, and
1388 \fB\-q\fP are available with this command. There are also several
1389 special options flags:
1393 option, no patch output is produced.
1394 Instead, a summary of the changed or added files between the two
1395 releases is sent to the standard output device.
1396 This is useful for finding out, for example, which files have changed
1397 between two dates or revisions.
1401 option, a diff of the top two revisions is sent to the standard output device.
1402 This is most useful for seeing what the last change to a file was.
1406 option, the patch output uses the newer ``unidiff'' format for context
1411 to explicitly specify the
1413 form of context diffs
1414 (which is the default), if you like.
1416 \fBrelease\fP [\fB\-dQq\fP] \fImodules\fP\|.\|.\|.
1421 Working directory, history log.
1423 This command is meant to safely cancel the effect of
1427 doesn't lock files, it isn't strictly necessary to use this command.
1428 You can always simply delete your working directory, if you
1429 like; but you risk losing changes you may have forgotten, and you
1430 leave no trace in the
1432 history file that you've abandoned your checkout.
1436 to avoid these problems. This command
1437 checks that no un-committed changes are present; that you are
1438 executing it from immediately above, or inside, a \fBcvs\fP working
1439 directory; and that the repository recorded for your files is the same
1440 as the repository defined in the module database.
1442 If all these conditions are true,
1445 record of its execution (attesting to your intentionally abandoning
1446 your checkout) in the
1450 You can use the \fB\-d\fP flag to request that your working copies of
1451 the source files be deleted if the \fBrelease\fP succeeds.
1453 \fBremove\fP [\fB\-lR\fP] [\fIfiles\|.\|.\|.\fP]
1463 Use this command to declare that you wish to remove \fIfiles\fP from
1464 the source repository. Like most
1468 works on files in your working
1469 directory, not directly on the repository. As a safeguard, it also
1470 requires that you first erase the specified files from your working
1473 The files are not actually removed until you apply your changes to the
1476 at that point, the corresponding
1478 files in the source repository are
1482 directory (also within the source repository).
1484 This command is recursive by default, scheduing all physically removed
1485 files that it finds for removal by the next
1489 option to avoid this recursion, or just specify that actual files that you
1490 wish remove to consider.
1492 \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
1502 You can use this command to assign symbolic tags to particular,
1503 explicitly specified source versions in the repository.
1505 works directly on the repository contents (and requires no
1510 instead, to base the selection of
1511 versions to tag on the contents of your working directory.
1513 In general, tags (often the symbolic names of software distributions)
1514 should not be removed, but the
1516 option is available as a means to remove completely obsolete symbolic names
1517 if necessary (as might be the case for an Alpha release, say).
1519 The \fB-b\fP option makes the tag a ``branch'' tag, allowing
1520 concurrent, isolated development.
1521 This is most useful for creating a patch to a previously released software
1524 You can use the standard \fB\-r\fP and \fB\-D\fP options to tag only those
1525 files that already contain a certain tag. This method would be used
1526 to rename a tag: tag only the files identified by the old tag, then delete the
1527 old tag, leaving the new tag on exactly the same files as the old tag.
1530 executes recursively by default, tagging all subdirectories of
1531 \fImodules\fP you specify in the argument. You can restrict its
1532 operation to top-level directories with the standard \fB\-l\fP option;
1533 or you can explicitly request recursion with \fB\-R\fP.
1535 The modules database can specify a program to execute whenever a tag
1536 is specified; a typical use is to send electronic mail to a group of
1537 interested parties. If you want to bypass that program, use the
1538 standard \fB\-n\fP option.
1540 The standard options \fB\-Q\fP and \fB\-q\fP are also available with
1549 for removed files that contin the specified tag.
1550 The tag is removed from these files, which makes it convenient to re-use a
1551 symbolic tag as development continues (and files get removed from the
1552 up-coming distribution).
1554 \fBstatus\fP [\fB\-lR\fP] [\fB\-v\fP] [\fIfiles\fP\|.\|.\|.]
1556 working directory, repository.
1561 Display a brief report on the current status of \fIfiles\fP with
1562 respect to the source repository, including any ``sticky'' tags,
1563 dates, or \fB\-k\fP options. (``Sticky'' options will restrict how
1565 operates until you reset them; see the
1567 .` "cvs update \-A\|.\|.\|.".)
1569 You can also use this command to anticipate the potential impact of a
1571 on your working source directory. If you do
1572 not specify any \fIfiles\fP explicitly, reports are shown for all
1573 files that \fBcvs\fP has placed in your working directory. You can
1574 limit the scope of this search to the current directory itself (not
1575 its subdirectories) with the standard \fB\-l\fP option flag; or you
1576 can explicitly request recursive status reports with the \fB\-R\fP
1581 option causes the symbolic tags for the
1583 file to be displayed as well.
1585 \fBtag\fP [\fB\-lQqR\fP] [\fB\-b\fP] [\fB\-d\fP] \fIsymbolic_tag\fP [\fIfiles\fP\|.\|.\|.\|]
1587 working directory, repository.
1595 Use this command to assign symbolic tags to the nearest repository
1596 versions to your working sources. The tags are applied immediately to
1597 the repository, as with \fBrtag\fP, but the versions are supplied
1598 implicitly by the \fBcvs\fP records of your working files' history
1599 rather than applied explicitly.
1601 One use for tags is to record a ``snapshot'' of the current sources
1602 when the software freeze date of a project arrives. As bugs are fixed
1603 after the freeze date, only those changed sources that are to be part
1604 of the release need be re-tagged.
1606 The symbolic tags are meant to permanently record which revisions of which
1607 files were used in creating a software distribution.
1612 commands allow you to extract an exact copy of a tagged release at any time in
1613 the future, regardless of whether files have been changed, added, or removed
1614 since the release was tagged.
1617 .` "cvs tag \-d \fIsymbolic_tag\fP\|.\|.\|.",
1619 symbolic tag you specify is
1621 instead of being added. \fIWarning\fP: Be very certain of your ground
1622 before you delete a tag; doing this effectively discards some
1623 historical information, which may later turn out to have been valuable.
1625 The \fB-b\fP option makes the tag a ``branch'' tag, allowing
1626 concurrent, isolated development.
1627 This is most useful for creating a patch to a previously released software
1632 executes recursively through subdirectories; you can prevent this by
1633 using the standard \fB\-l\fP option, or specify the recursion
1634 explicitly by using \fB\-R\fP.
1636 \fBupdate\fP [\fB\-Adf\|lPpQqR\fP] [\fB\-d\fP] [\fB\-r\fP \fItag\fP|\fB\-D\fP \fIdate\fP] \fIfiles\|.\|.\|.\fP
1638 repository, working directory.
1645 to create your private copy of source from the common repository,
1646 other developers will continue changing the central source. From time
1647 to time, when it is convenient in your development process, you can
1651 from within your working directory to reconcile your work with any
1652 revisions applied to the source repository since your last
1658 keeps you informed of its progress by printing a line for each file,
1659 prefaced with one of the characters
1661 to indicate the status of the file:
1664 The file was brought \fIup to date\fP with respect to the repository.
1665 This is done for any file that exists in the repository but not in
1666 your source, and for files that you haven't changed but are not the most
1667 recent versions available in the repository.
1670 The file has been \fIadded\fP to your private copy of the sources, and
1671 will be added to the
1673 source repository when you run
1676 This is a reminder to you that the file needs to be committed.
1679 The file has been \fIremoved\fP from your private copy of the sources, and
1680 will be removed from the
1682 source repository when you run
1685 This is a reminder to you that the file needs to be committed.
1688 The file is \fImodified\fP in your working directory.
1690 can indicate one of two states for a file you're working on: either
1691 there were no modifications to the same file in the repository, so
1692 that your file remains as you last saw it; or there were modifications
1693 in the repository as well as in your copy, but they were
1694 \fImerged\fP successfully, without conflict, in your working
1698 A \fIconflict\fP was detected while trying to merge your changes to
1699 \fIfile\fP with changes from the source repository. \fIfile\fP (the
1700 copy in your working directory) is now the output of the
1702 command on the two versions; an unmodified copy of your file is also
1703 in your working directory, with the name `\fB.#\fP\fIfile\fP\fB.\fP\fIversion\fP',
1708 revision that your modified file started from.
1709 (Note that some systems automatically purge files that begin with
1712 if they have not been accessed for a few days.
1713 If you intend to keep a copy of your original file, it is a very good
1717 \fIfile\fP is in your working directory, but does not correspond to
1718 anything in the source repository, and is not in the list of files
1719 for \fBcvs\fP to ignore (see the description of the \fB\-I\fP option).
1725 option to reset any sticky tags, dates, or
1727 options. (If you get a working copy of a file by using one of the
1728 \fB\-r\fP, \fB\-D\fP, or \fB\-k\fP options, \fBcvs\fP remembers the
1729 corresponding tag, date, or \fIkflag\fP and continues using it on
1730 future updates; use the \fB\-A\fP option to make \fBcvs\fP forget these
1731 specifications, and retrieve the ``head'' version of the file).
1733 The \fB\-j\fP\fIbranch\fP option
1734 merges the changes made between the
1735 resulting revision and the revision that it is based on (e.g., if
1736 the tag refers to a branch,
1738 will merge all changes made in
1739 that branch into your working file).
1741 With two \fB-j\fP options,
1743 will merge in the changes between the two respective revisions.
1744 This can be used to ``remove'' a certain delta from your working file.
1745 E.g., If the file foo.c is based on
1746 revision 1.6 and I want to remove the changes made between 1.3 and
1752 example% cvs update -j1.5 -j1.3 foo.c # note the order...
1757 In addition, each \fB-j\fP option can contain on optional date
1758 specification which, when used with branches, can limit the chosen
1759 revision to one within a specific date.
1760 An optional date is specified by adding a colon (:) to the tag.
1765 -jSymbolic_Tag:Date_Specifier
1772 option to create any directories that exist in the repository if they're
1773 missing from the working directory. (Normally, update acts only on
1774 directories and files that were already enrolled in your
1775 working directory.) This is useful for updating directories
1776 that were created in the repository since the initial
1777 \fBcheckout\fP; but it has an unfortunate side effect. If you
1778 deliberately avoided certain directories in the repository when you
1779 created your working directory (either through use of a module name or by
1780 listing explicitly the files and directories you wanted on the
1781 command line), then updating with
1783 will create those directories, which may not be what you want.
1785 Use \fB\-I\fP \fIname\fP to ignore files whose names match \fIname\fP
1786 (in your working directory) during the update. You can specify
1787 \fB\-I\fP more than once on the command line to specify several files
1788 to ignore. By default,
1789 \fBupdate\fP ignores files whose names match any of the following:
1797 \&.make.state .nse_depinfo
1799 *.old *.bak *.orig *.rej .del\-*
1800 *.a *.o *.Z *.elc *.ln core
1807 to avoid ignoring any files at all.
1809 The standard \fBcvs\fP command options \fB\-f\fP, \fB\-k\fP,
1810 \fB\-l\fP, \fB\-P\fP, \fB\-p\fP, \fB\-Q\fP, \fB\-q\fP, and \fB\-r\fP
1811 are also available with \fBupdate\fP.
1814 For more detailed information on
1816 supporting files, see
1820 Files in working directories:
1823 A directory of \fBcvs\fP administrative files.
1828 List and status of files in your working directory.
1835 Flag: do not add more entries on
1839 Pathname to the corresponding directory in the source repository.
1842 Contains the per-directory ``sticky'' tag or date information.
1843 This file is created/updated when you specify
1851 commands, and no files are specified.
1854 Name of program to run on
1858 Name of program to run on
1862 Files in source repositories:
1865 Directory of global administrative files for repository.
1867 CVSROOT/commitinfo,v
1868 Records programs for filtering
1873 Log file of \fBcvs\fP transactions.
1876 Definitions for modules in this repository.
1879 Records programs for piping
1884 Records pathnames to templates used dueing a
1889 Records programs for editing/validating
1894 Directory for removed source files.
1897 A lock directory created by
1899 when doing sensitive changes to the
1904 Temporary lock file for repository.
1911 .SH "ENVIRONMENT VARIABLES"
1914 Should contain the full pathname to the root of the
1916 source repository (where the
1918 files are kept). This information must be available to \fBcvs\fP for
1919 most commands to execute; if
1921 is not set, or if you wish to override it for one invocation, you can
1922 supply it on the command line:
1923 .` "cvs \-d \fIcvsroot cvs_command\fP\|.\|.\|."
1924 You may not need to set
1926 if your \fBcvs\fP binary has the right path compiled in; use
1928 to display all compiled-in paths.
1935 will try hard to make the files in your working directory read-only.
1936 When this is not set, the default behavior is to permit modification
1937 of your working files.
1940 Specifies the full pathname where to find
1946 If not set, a compiled-in value is used; see the display from
1950 Specifies the program to use for recording log messages during
1952 If not set, the default is
1957 Original author of the
1959 shell script version posted to
1960 .B comp.sources.unix
1961 in the volume6 release of December, 1986.
1962 Credited with much of the
1964 conflict resolution algorithms.
1967 Coder and designer of the
1969 program itself in April, 1989, based on the original work done by Dick.
1972 Helped Brian with the design of the
1974 module and vendor branch support and author of the
1976 shell script (the ancestor of
1984 .BR mkmodules ( 1 ),