/contrib/cvs/doc/cvs.1
Unknown | 3968 lines | 3937 code | 31 blank | 0 comment | 0 complexity | 67448ebcc103d7fe3cc0c5d37422628d MD5 | raw file
Possible License(s): MPL-2.0-no-copyleft-exception, BSD-3-Clause, LGPL-2.0, LGPL-2.1, BSD-2-Clause, 0BSD, JSON, AGPL-1.0, GPL-2.0
- .\" This is the man page for CVS. It is auto-generated from the
- .\" cvs.man.header, cvs.texinfo, & cvs.man.footer files. Please make changes
- .\" there. A full copyright & license notice may also be found in cvs.texinfo.
- .\"
- .\" Man page autogeneration, including this header file, is
- .\" Copyright 2004-2005 The Free Software Foundation, Inc.,
- .\" Derek R. Price, & Ximbiot <http://ximbiot.com>.
- .\"
- .\" This documentation is free software; you can redistribute it and/or modify
- .\" it under the terms of the GNU General Public License as published by
- .\" the Free Software Foundation; either version 2, or (at your option)
- .\" any later version.
- .\"
- .\" This documentation is distributed in the hope that it will be useful,
- .\" but WITHOUT ANY WARRANTY; without even the implied warranty of
- .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- .\" GNU General Public License for more details.
- .\"
- .\" You should have received a copy of the GNU General Public License
- .\" along with this documentation; if not, write to the Free Software
- .\" Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- .de Id
- .ds Rv \\$3
- .ds Dt \\$4
- ..
- .TH CVS 1 "\*(Dt"
- .\" Full space in nroff; half space in troff
- .de SP
- .if n .sp
- .if t .sp .5
- ..
- .\" quoted command
- .de `
- .RB ` "\|\\$1\|" '\\$2
- ..
- .SH "NAME"
- cvs \- Concurrent Versions System
- .SH "SYNOPSIS"
- .TP
- \fBcvs\fP [ \fIcvs_options\fP ]
- .I cvs_command
- [
- .I command_options
- ] [
- .I command_args
- ]
- .SH "NOTE"
- .IX "revision control system" "\fLcvs\fR"
- .IX cvs "" "\fLcvs\fP \- concurrent versions system"
- .IX "concurrent versions system \- \fLcvs\fP"
- .IX "release control system" "cvs command" "" "\fLcvs\fP \- concurrent versions system"
- .IX "source control system" "cvs command" "" "\fLcvs\fP \- concurrent versions system"
- .IX revisions "cvs command" "" "\fLcvs\fP \- source control"
- This manpage is a summary of some of the features of
- \fBcvs\fP. It is auto-generated from an appendix of the CVS manual.
- For more in-depth documentation, please consult the
- Cederqvist manual (via the
- .B info CVS
- command or otherwise,
- as described in the SEE ALSO section of this manpage). Cross-references
- in this man page refer to nodes in the same.
- .SH "CVS commands"
- .SS "Guide to CVS commands"
- .SP
- This appendix describes the overall structure of
- \fBcvs\fR commands, and describes some commands in
- detail (others are described elsewhere; for a quick
- reference to \fBcvs\fR commands, see node `Invoking CVS\(aq in the CVS manual).
- .SP
- .SH "Structure"
- .SS "Overall structure of CVS commands"
- .IX "Structure"
- .IX "CVS command structure"
- .IX "Command structure"
- .IX "Format of CVS commands"
- .SP
- The overall format of all \fBcvs\fR commands is:
- .SP
- .PD 0
- .SP
- .IP "" 2
- cvs [ cvs_options ] cvs_command [ command_options ] [ command_args ]
- .PD
- .IP "" 0
- .SP
- .IP "" 0
- \fBcvs\fR
- .IP "" 2
- The name of the \fBcvs\fR program.
- .SP
- .IP "" 0
- \fBcvs_options\fR
- .IP "" 2
- Some options that affect all sub-commands of \fBcvs\fR. These are
- described below.
- .SP
- .IP "" 0
- \fBcvs_command\fR
- .IP "" 2
- One of several different sub-commands. Some of the commands have
- aliases that can be used instead; those aliases are noted in the
- reference manual for that command. There are only two situations
- where you may omit \fBcvs_command\fR: \fBcvs -H\fR elicits a
- list of available commands, and \fBcvs -v\fR displays version
- information on \fBcvs\fR itself.
- .SP
- .IP "" 0
- \fBcommand_options\fR
- .IP "" 2
- Options that are specific for the command.
- .SP
- .IP "" 0
- \fBcommand_args\fR
- .IP "" 2
- Arguments to the commands.
- .SP
- There is unfortunately some confusion between
- \fBcvs_options\fR and \fBcommand_options\fR.
- When given as a \fBcvs_option\fR, some options only
- affect some of the commands. When given as a
- \fBcommand_option\fR it may have a different meaning, and
- be accepted by more commands. In other words, do not
- take the above categorization too seriously. Look at
- the documentation instead.
- .SP
- .SH "Exit status"
- .SS "CVS\(aqs exit status"
- .IX "Exit status, of CVS"
- .SP
- \fBcvs\fR can indicate to the calling environment whether it
- succeeded or failed by setting its \fIexit status\fR.
- The exact way of testing the exit status will vary from
- one operating system to another. For example in a unix
- shell script the \fB$?\fR variable will be 0 if the
- last command returned a successful exit status, or
- greater than 0 if the exit status indicated failure.
- .SP
- If \fBcvs\fR is successful, it returns a successful status;
- if there is an error, it prints an error message and
- returns a failure status. The one exception to this is
- the \fBcvs diff\fR command. It will return a
- successful status if it found no differences, or a
- failure status if there were differences or if there
- was an error. Because this behavior provides no good
- way to detect errors, in the future it is possible that
- \fBcvs diff\fR will be changed to behave like the
- other \fBcvs\fR commands.
- .SP
- .SH "~/.cvsrc"
- .SS "Default options and the ~/.cvsrc file"
- .IX "\&.cvsrc file"
- .IX "Option defaults"
- .SP
- There are some \fBcommand_options\fR that are used so
- often that you might have set up an alias or some other
- means to make sure you always specify that option. One
- example (the one that drove the implementation of the
- \fB.cvsrc\fR support, actually) is that many people find the
- default output of the \fBdiff\fR command to be very
- hard to read, and that either context diffs or unidiffs
- are much easier to understand.
- .SP
- The \fB~/.cvsrc\fR file is a way that you can add
- default options to \fBcvs_commands\fR within cvs,
- instead of relying on aliases or other shell scripts.
- .SP
- The format of the \fB~/.cvsrc\fR file is simple. The
- file is searched for a line that begins with the same
- name as the \fBcvs_command\fR being executed. If a
- match is found, then the remainder of the line is split
- up (at whitespace characters) into separate options and
- added to the command arguments \fIbefore\fR any
- options from the command line.
- .SP
- If a command has two names (e.g., \fBcheckout\fR and
- \fBco\fR), the official name, not necessarily the one
- used on the command line, will be used to match against
- the file. So if this is the contents of the user\(aqs
- \fB~/.cvsrc\fR file:
- .SP
- .PD 0
- .SP
- .IP "" 2
- log -N
- .IP "" 2
- diff -uN
- .IP "" 2
- rdiff -u
- .IP "" 2
- update -Pd
- .IP "" 2
- checkout -P
- .IP "" 2
- release -d
- .PD
- .IP "" 0
- .SP
- the command \fBcvs checkout foo\fR would have the
- \fB-P\fR option added to the arguments, as well as
- \fBcvs co foo\fR.
- .SP
- With the example file above, the output from \fBcvs
- diff foobar\fR will be in unidiff format. \fBcvs diff
- -c foobar\fR will provide context diffs, as usual.
- Getting "old" format diffs would be slightly more
- complicated, because \fBdiff\fR doesn\(aqt have an option
- to specify use of the "old" format, so you would need
- \fBcvs -f diff foobar\fR.
- .SP
- In place of the command name you can use \fBcvs\fR to
- specify global options (see node `Global options\(aq in the CVS manual). For
- example the following line in \fB.cvsrc\fR
- .SP
- .PD 0
- .SP
- .IP "" 2
- cvs -z6
- .PD
- .IP "" 0
- .SP
- causes \fBcvs\fR to use compression level 6.
- .SP
- .SH "Global options"
- .IX "Options, global"
- .IX "Global options"
- .IX "Left-hand options"
- .SP
- The available \fBcvs_options\fR (that are given to the
- left of \fBcvs_command\fR) are:
- .SP
- .IP "" 0
- \fB--allow-root=\fIrootdir\fB\fR
- .IP "" 2
- Specify legal \fBcvsroot\fR directory. See
- `Password authentication server\(aq in the CVS manual.
- .SP
- .IX "Authentication, stream"
- .IX "Stream authentication"
- .IP "" 0
- \fB-a\fR
- .IP "" 2
- Authenticate all communication between the client and
- the server. Only has an effect on the \fBcvs\fR client.
- As of this writing, this is only implemented when using
- a GSSAPI connection (see node `GSSAPI authenticated\(aq in the CVS manual).
- Authentication prevents certain sorts of attacks
- involving hijacking the active \fBtcp\fR connection.
- Enabling authentication does not enable encryption.
- .SP
- .IX "RCSBIN, overriding"
- .IX "Overriding RCSBIN"
- .IP "" 0
- \fB-b \fIbindir\fB\fR
- .IP "" 2
- In \fBcvs\fR 1.9.18 and older, this specified that
- \fBrcs\fR programs are in the \fIbindir\fR directory.
- Current versions of \fBcvs\fR do not run \fBrcs\fR
- programs; for compatibility this option is accepted,
- but it does nothing.
- .SP
- .IX "TMPDIR, overriding"
- .IX "Overriding TMPDIR"
- .IP "" 0
- \fB-T \fItempdir\fB\fR
- .IP "" 2
- Use \fItempdir\fR as the directory where temporary files are
- located. Overrides the setting of the \fB$TMPDIR\fR environment
- variable and any precompiled directory. This parameter should be
- specified as an absolute pathname.
- (When running client/server, \fB-T\fR affects only the local process;
- specifying \fB-T\fR for the client has no effect on the server and
- vice versa.)
- .SP
- .IX "CVSROOT, overriding"
- .IX "Overriding CVSROOT"
- .IP "" 0
- \fB-d \fIcvs_root_directory\fB\fR
- .IP "" 2
- Use \fIcvs_root_directory\fR as the root directory
- pathname of the repository. Overrides the setting of
- the \fB$CVSROOT\fR environment variable. See `Repository\(aq in the CVS manual.
- .SP
- .IX "EDITOR, overriding"
- .IX "Overriding EDITOR"
- .IP "" 0
- \fB-e \fIeditor\fB\fR
- .IP "" 2
- Use \fIeditor\fR to enter revision log information. Overrides the
- setting of the \fB$CVSEDITOR\fR and \fB$EDITOR\fR
- environment variables. For more information, see
- `Committing your changes\(aq in the CVS manual.
- .SP
- .IP "" 0
- \fB-f\fR
- .IP "" 2
- Do not read the \fB~/.cvsrc\fR file. This
- option is most often used because of the
- non-orthogonality of the \fBcvs\fR option set. For
- example, the \fBcvs log\fR option \fB-N\fR (turn off
- display of tag names) does not have a corresponding
- option to turn the display on. So if you have
- \fB-N\fR in the \fB~/.cvsrc\fR entry for \fBlog\fR,
- you may need to use \fB-f\fR to show the tag names.
- .SP
- .IP "" 0
- \fB-H\fR
- .IP "" 2
- .IP "" 0
- \fB--help\fR
- .IP "" 2
- Display usage information about the specified \fBcvs_command\fR
- (but do not actually execute the command). If you don\(aqt specify
- a command name, \fBcvs -H\fR displays overall help for
- \fBcvs\fR, including a list of other help options.
- .SP
- .IX "Read-only mode"
- .IP "" 0
- \fB-n\fR
- .IP "" 2
- Do not change any files. Attempt to execute the
- \fBcvs_command\fR, but only to issue reports; do not remove,
- update, or merge any existing files, or create any new files.
- .SP
- Note that \fBcvs\fR will not necessarily produce exactly
- the same output as without \fB-n\fR. In some cases
- the output will be the same, but in other cases
- \fBcvs\fR will skip some of the processing that would
- have been required to produce the exact same output.
- .SP
- .IP "" 0
- \fB-Q\fR
- .IP "" 2
- Cause the command to be really quiet; the command will only
- generate output for serious problems.
- .SP
- .IP "" 0
- \fB-q\fR
- .IP "" 2
- Cause the command to be somewhat quiet; informational messages,
- such as reports of recursion through subdirectories, are
- suppressed.
- .SP
- .IX "Read-only files, and -r"
- .IP "" 0
- \fB-r\fR
- .IP "" 2
- Make new working files read-only. Same effect
- as if the \fB$CVSREAD\fR environment variable is set
- (see node `Environment variables\(aq in the CVS manual). The default is to
- make working files writable, unless watches are on
- (see node `Watches\(aq in the CVS manual).
- .SP
- .IP "" 0
- \fB-s \fIvariable\fB=\fIvalue\fB\fR
- .IP "" 2
- Set a user variable (see node `Variables\(aq in the CVS manual).
- .SP
- .IX "Trace"
- .IP "" 0
- \fB-t\fR
- .IP "" 2
- Trace program execution; display messages showing the steps of
- \fBcvs\fR activity. Particularly useful with \fB-n\fR to explore the
- potential impact of an unfamiliar command.
- .SP
- .IP "" 0
- \fB-v\fR
- .IP "" 2
- .IP "" 0
- \fB--version\fR
- .IP "" 2
- Display version and copyright information for \fBcvs\fR.
- .SP
- .IX "CVSREAD, overriding"
- .IX "Overriding CVSREAD"
- .IP "" 0
- \fB-w\fR
- .IP "" 2
- Make new working files read-write. Overrides the
- setting of the \fB$CVSREAD\fR environment variable.
- Files are created read-write by default, unless \fB$CVSREAD\fR is
- set or \fB-r\fR is given.
- .SP
- .IP "" 0
- \fB-x\fR
- .IP "" 2
- .IX "Encryption"
- Encrypt all communication between the client and the
- server. Only has an effect on the \fBcvs\fR client. As
- of this writing, this is only implemented when using a
- GSSAPI connection (see node `GSSAPI authenticated\(aq in the CVS manual) or a
- Kerberos connection (see node `Kerberos authenticated\(aq in the CVS manual).
- Enabling encryption implies that message traffic is
- also authenticated. Encryption support is not
- available by default; it must be enabled using a
- special configure option, \fB--enable-encryption\fR,
- when you build \fBcvs\fR.
- .SP
- .IP "" 0
- \fB-z \fIgzip-level\fB\fR
- .IP "" 2
- .IX "Compression"
- .IX "Gzip"
- Set the compression level.
- Valid levels are 1 (high speed, low compression) to
- 9 (low speed, high compression), or 0 to disable
- compression (the default).
- Only has an effect on the \fBcvs\fR client.
- .SP
- .SP
- .SH "Common options"
- .SS "Common command options"
- .IX "Common options"
- .IX "Right-hand options"
- .SP
- This section describes the \fBcommand_options\fR that
- are available across several \fBcvs\fR commands. These
- options are always given to the right of
- \fBcvs_command\fR. Not all
- commands support all of these options; each option is
- only supported for commands where it makes sense.
- However, when a command has one of these options you
- can almost always count on the same behavior of the
- option as in other commands. (Other command options,
- which are listed with the individual commands, may have
- different behavior from one \fBcvs\fR command to the other).
- .SP
- \fBThe \fBhistory\fB command is an exception; it supports
- many options that conflict even with these standard options.\fR
- .SP
- .IX "Dates"
- .IX "Time"
- .IX "Specifying dates"
- .IP "" 0
- \fB-D \fIdate_spec\fB\fR
- .IP "" 2
- Use the most recent revision no later than \fIdate_spec\fR.
- \fIdate_spec\fR is a single argument, a date description
- specifying a date in the past.
- .SP
- The specification is \fIsticky\fR when you use it to make a
- private copy of a source file; that is, when you get a working
- file using \fB-D\fR, \fBcvs\fR records the date you specified, so that
- further updates in the same directory will use the same date
- (for more information on sticky tags/dates, see node `Sticky tags\(aq in the CVS manual).
- .SP
- \fB-D\fR is available with the \fBannotate\fR, \fBcheckout\fR,
- \fBdiff\fR, \fBexport\fR, \fBhistory\fR,
- \fBrdiff\fR, \fBrtag\fR, and \fBupdate\fR commands.
- (The \fBhistory\fR command uses this option in a
- slightly different way; see node `history options\(aq in the CVS manual).
- .SP
- .IX "Timezone, in input"
- .IX "Zone, time, in input"
- A wide variety of date formats are supported by
- \fBcvs\fR. The most standard ones are ISO8601 (from the
- International Standards Organization) and the Internet
- e-mail standard (specified in RFC822 as amended by
- RFC1123).
- .SP
- ISO8601 dates have many variants but a few examples
- are:
- .SP
- .PD 0
- .SP
- .IP "" 4
- 1972-09-24
- .IP "" 4
- 1972-09-24 20:05
- .PD
- .IP "" 2
- .SP
- There are a lot more ISO8601 date formats, and \fBcvs\fR
- accepts many of them, but you probably don\(aqt want to
- hear the \fIwhole\fR long story :-).
- .SP
- In addition to the dates allowed in Internet e-mail
- itself, \fBcvs\fR also allows some of the fields to be
- omitted. For example:
- .SP
- .PD 0
- .SP
- .IP "" 4
- 24 Sep 1972 20:05
- .IP "" 4
- 24 Sep
- .PD
- .IP "" 2
- .SP
- The date is interpreted as being in the
- local timezone, unless a specific timezone is
- specified.
- .SP
- These two date formats are preferred. However,
- \fBcvs\fR currently accepts a wide variety of other date
- formats. They are intentionally not documented here in
- any detail, and future versions of \fBcvs\fR might not
- accept all of them.
- .SP
- One such format is
- \fB\fImonth\fB/\fIday\fB/\fIyear\fB\fR. This may
- confuse people who are accustomed to having the month
- and day in the other order; \fB1/4/96\fR is January 4,
- not April 1.
- .SP
- Remember to quote the argument to the \fB-D\fR
- flag so that your shell doesn\(aqt interpret spaces as
- argument separators. A command using the \fB-D\fR
- flag can look like this:
- .SP
- .PD 0
- .SP
- .IP "" 4
- $ cvs diff -D "1 hour ago" cvs.texinfo
- .PD
- .IP "" 2
- .SP
- .IX "Forcing a tag match"
- .IP "" 0
- \fB-f\fR
- .IP "" 2
- When you specify a particular date or tag to \fBcvs\fR commands, they
- normally ignore files that do not contain the tag (or did not
- exist prior to the date) that you specified. Use the \fB-f\fR option
- if you want files retrieved even when there is no match for the
- tag or date. (The most recent revision of the file
- will be used).
- .SP
- Note that even with \fB-f\fR, a tag that you specify
- must exist (that is, in some file, not necessary in
- every file). This is so that \fBcvs\fR will continue to
- give an error if you mistype a tag name.
- .SP
- \fB-f\fR is available with these commands:
- \fBannotate\fR, \fBcheckout\fR, \fBexport\fR,
- \fBrdiff\fR, \fBrtag\fR, and \fBupdate\fR.
- .SP
- \fBWARNING: The \fBcommit\fB and \fBremove\fB
- commands also have a
- \fB-f\fB option, but it has a different behavior for
- those commands. See `commit options\(aq in the CVS manual, and
- `Removing files\(aq in the CVS manual.\fR
- .SP
- .IP "" 0
- \fB-k \fIkflag\fB\fR
- .IP "" 2
- Alter the default processing of keywords.
- See `Keyword substitution\(aq in the CVS manual, for the meaning of
- \fIkflag\fR. Your \fIkflag\fR specification is
- \fIsticky\fR when you use it to create a private copy
- of a source file; that is, when you use this option
- with the \fBcheckout\fR or \fBupdate\fR commands,
- \fBcvs\fR associates your selected \fIkflag\fR with the
- file, and continues to use it with future update
- commands on the same file until you specify otherwise.
- .SP
- The \fB-k\fR option is available with the \fBadd\fR,
- \fBcheckout\fR, \fBdiff\fR, \fBrdiff\fR, \fBimport\fR and
- \fBupdate\fR commands.
- .SP
- .IP "" 0
- \fB-l\fR
- .IP "" 2
- Local; run only in current working directory, rather than
- recursing through subdirectories.
- .SP
- Available with the following commands: \fBannotate\fR, \fBcheckout\fR,
- \fBcommit\fR, \fBdiff\fR, \fBedit\fR, \fBeditors\fR, \fBexport\fR,
- \fBlog\fR, \fBrdiff\fR, \fBremove\fR, \fBrtag\fR,
- \fBstatus\fR, \fBtag\fR, \fBunedit\fR, \fBupdate\fR, \fBwatch\fR,
- and \fBwatchers\fR.
- .SP
- .IX "Editor, avoiding invocation of"
- .IX "Avoiding editor invocation"
- .IP "" 0
- \fB-m \fImessage\fB\fR
- .IP "" 2
- Use \fImessage\fR as log information, instead of
- invoking an editor.
- .SP
- Available with the following commands: \fBadd\fR,
- \fBcommit\fR and \fBimport\fR.
- .SP
- .IP "" 0
- \fB-n\fR
- .IP "" 2
- Do not run any tag program. (A program can be
- specified to run in the modules
- database (see node `modules\(aq in the CVS manual); this option bypasses it).
- .SP
- \fBThis is not the same as the \fBcvs -n\fB
- program option, which you can specify to the left of a cvs command!\fR
- .SP
- Available with the \fBcheckout\fR, \fBexport\fR,
- and \fBrtag\fR commands.
- .SP
- .IP "" 0
- \fB-P\fR
- .IP "" 2
- Prune empty directories. See `Removing directories\(aq in the CVS manual.
- .SP
- .IP "" 0
- \fB-p\fR
- .IP "" 2
- Pipe the files retrieved from the repository to standard output,
- rather than writing them in the current directory. Available
- with the \fBcheckout\fR and \fBupdate\fR commands.
- .SP
- .IP "" 0
- \fB-R\fR
- .IP "" 2
- Process directories recursively. This is on by default.
- .SP
- Available with the following commands: \fBannotate\fR, \fBcheckout\fR,
- \fBcommit\fR, \fBdiff\fR, \fBedit\fR, \fBeditors\fR, \fBexport\fR,
- \fBrdiff\fR, \fBremove\fR, \fBrtag\fR,
- \fBstatus\fR, \fBtag\fR, \fBunedit\fR, \fBupdate\fR, \fBwatch\fR,
- and \fBwatchers\fR.
- .SP
- .IP "" 0
- \fB-r \fItag\fB\fR
- .IP "" 2
- .IX "HEAD, special tag"
- .IX "BASE, special tag"
- Use the revision specified by the \fItag\fR argument instead of the
- default \fIhead\fR revision. As well as arbitrary tags defined
- with the \fBtag\fR or \fBrtag\fR command, two special tags are
- always available: \fBHEAD\fR refers to the most recent version
- available in the repository, and \fBBASE\fR refers to the
- revision you last checked out into the current working directory.
- .SP
- The tag specification is sticky when you use this
- with \fBcheckout\fR or \fBupdate\fR to make your own
- copy of a file: \fBcvs\fR remembers the tag and continues to use it on
- future update commands, until you specify otherwise (for more information
- on sticky tags/dates, see node `Sticky tags\(aq in the CVS manual).
- .SP
- The tag can be either a symbolic or numeric tag, as
- described in `Tags\(aq in the CVS manual, or the name of a branch, as
- described in `Branching and merging\(aq in the CVS manual.
- When a command expects a specific revision,
- the name of a branch is interpreted as the most recent
- revision on that branch.
- .SP
- Specifying the \fB-q\fR global option along with the
- \fB-r\fR command option is often useful, to suppress
- the warning messages when the \fBrcs\fR file
- does not contain the specified tag.
- .SP
- \fBThis is not the same as the overall \fBcvs -r\fB option,
- which you can specify to the left of a \fBcvs\fB command!\fR
- .SP
- \fB-r\fR is available with the \fBannotate\fR, \fBcheckout\fR,
- \fBcommit\fR, \fBdiff\fR, \fBhistory\fR, \fBexport\fR, \fBrdiff\fR,
- \fBrtag\fR, and \fBupdate\fR commands.
- .SP
- .IP "" 0
- \fB-W\fR
- .IP "" 2
- Specify file names that should be filtered. You can
- use this option repeatedly. The spec can be a file
- name pattern of the same type that you can specify in
- the \fB.cvswrappers\fR file.
- Available with the following commands: \fBimport\fR,
- and \fBupdate\fR.
- .SP
- .SP
- .SH "add"
- .SS "Add files and directories to the repository"
- .IX "add (subcommand)"
- .SP
- .IP "\(bu" 2
- Synopsis: add [-k rcs-kflag] [-m message] files...
- .IP "\(bu" 2
- Requires: repository, working directory.
- .IP "\(bu" 2
- Changes: repository, working directory.
- .SP
- The \fBadd\fR command is used to present new files
- and directories for addition into the \fBcvs\fR
- repository. When \fBadd\fR is used on a directory,
- a new directory is created in the repository
- immediately. When used on a file, only the working
- directory is updated. Changes to the repository are
- not made until the \fBcommit\fR command is used on
- the newly added file.
- .SP
- The \fBadd\fR command also resurrects files that
- have been previously removed. This can be done
- before or after the \fBcommit\fR command is used
- to finalize the removal of files. Resurrected files
- are restored into the working directory at the time
- the \fBadd\fR command is executed.
- .SP
- .SH "add options"
- .SP
- These standard options are supported by \fBadd\fR
- (see node `Common options\(aq in the CVS manual, for a complete description of
- them):
- .SP
- .IP "" 0
- \fB-k \fIkflag\fB\fR
- .IP "" 2
- Process keywords according to \fIkflag\fR. See
- `Keyword substitution\(aq in the CVS manual.
- This option is sticky; future updates of
- this file in this working directory will use the same
- \fIkflag\fR. The \fBstatus\fR command can be viewed
- to see the sticky options. For more information on
- the \fBstatus\fR command, see node `Invoking CVS\(aq in the CVS manual.
- .SP
- .IP "" 0
- \fB-m \fImessage\fB\fR
- .IP "" 2
- Use \fImessage\fR as the log message, instead of
- invoking an editor.
- .SP
- .SH "add examples"
- .SP
- .SS "Adding a directory"
- .SP
- .PD 0
- .SP
- .IP "" 2
- $ mkdir doc
- .IP "" 2
- $ cvs add doc
- .IP "" 2
- Directory /path/to/repository/doc added to the repository
- .PD
- .IP "" 0
- .SP
- .SS "Adding a file"
- .SP
- .PD 0
- .SP
- .SP
- .IP "" 2
- $ >TODO
- .IP "" 2
- $ cvs add TODO
- .IP "" 2
- cvs add: scheduling file \`TODO\(aq for addition
- .IP "" 2
- cvs add: use \(aqcvs commit\(aq to add this file permanently
- .PD
- .IP "" 0
- .SP
- .SS "Undoing a \fBremove\fR command"
- .SP
- .PD 0
- .SP
- .IP "" 2
- $ rm -f makefile
- .IP "" 2
- $ cvs remove makefile
- .IP "" 2
- cvs remove: scheduling \`makefile\(aq for removal
- .IP "" 2
- cvs remove: use \(aqcvs commit\(aq to remove this file permanently
- .IP "" 2
- $ cvs add makefile
- .IP "" 2
- U makefile
- .IP "" 2
- cvs add: makefile, version 1.2, resurrected
- .PD
- .IP "" 0
- .SP
- .SH "admin"
- .SS "Administration"
- .IX "Admin (subcommand)"
- .SP
- .IP "\(bu" 2
- Requires: repository, working directory.
- .IP "\(bu" 2
- Changes: repository.
- .IP "\(bu" 2
- Synonym: rcs
- .SP
- This is the \fBcvs\fR interface to assorted
- administrative facilities. Some of them have
- questionable usefulness for \fBcvs\fR but exist for
- historical purposes. Some of the questionable options
- are likely to disappear in the future. This command
- \fIdoes\fR work recursively, so extreme care should be
- used.
- .SP
- .IX "cvsadmin"
- On unix, if there is a group named \fBcvsadmin\fR,
- only members of that group can run \fBcvs admin\fR
- (except for the \fBcvs admin -k\fR command, which can
- be run by anybody). This group should exist on the
- server, or any system running the non-client/server
- \fBcvs\fR. To disallow \fBcvs admin\fR for all users,
- create a group with no users in it. On NT, the
- \fBcvsadmin\fR feature does not exist and all users
- can run \fBcvs admin\fR.
- .SP
- .SH "admin options"
- .SP
- Some of these options have questionable usefulness for
- \fBcvs\fR but exist for historical purposes. Some even
- make it impossible to use \fBcvs\fR until you undo the
- effect!
- .SP
- .IP "" 0
- \fB-A\fIoldfile\fB\fR
- .IP "" 2
- Might not work together with \fBcvs\fR. Append the
- access list of \fIoldfile\fR to the access list of the
- \fBrcs\fR file.
- .SP
- .IP "" 0
- \fB-a\fIlogins\fB\fR
- .IP "" 2
- Might not work together with \fBcvs\fR. Append the
- login names appearing in the comma-separated list
- \fIlogins\fR to the access list of the \fBrcs\fR file.
- .SP
- .IP "" 0
- \fB-b[\fIrev\fB]\fR
- .IP "" 2
- Set the default branch to \fIrev\fR. In \fBcvs\fR, you
- normally do not manipulate default branches; sticky
- tags (see node `Sticky tags\(aq in the CVS manual) are a better way to decide
- which branch you want to work on. There is one reason
- to run \fBcvs admin -b\fR: to revert to the vendor\(aqs
- version when using vendor branches (see node `Reverting
- local changes\(aq in the CVS manual).
- There can be no space between \fB-b\fR and its argument.
- .SP
- .IX "Comment leader"
- .IP "" 0
- \fB-c\fIstring\fB\fR
- .IP "" 2
- Sets the comment leader to \fIstring\fR. The comment
- leader is not used by current versions of \fBcvs\fR or
- \fBrcs\fR 5.7. Therefore, you can almost surely not
- worry about it. See `Keyword substitution\(aq in the CVS manual.
- .SP
- .IP "" 0
- \fB-e[\fIlogins\fB]\fR
- .IP "" 2
- Might not work together with \fBcvs\fR. Erase the login
- names appearing in the comma-separated list
- \fIlogins\fR from the access list of the RCS file. If
- \fIlogins\fR is omitted, erase the entire access list.
- There can be no space between \fB-e\fR and its argument.
- .SP
- .IP "" 0
- \fB-I\fR
- .IP "" 2
- Run interactively, even if the standard input is not a
- terminal. This option does not work with the
- client/server \fBcvs\fR and is likely to disappear in
- a future release of \fBcvs\fR.
- .SP
- .IP "" 0
- \fB-i\fR
- .IP "" 2
- Useless with \fBcvs\fR. This creates and initializes a
- new \fBrcs\fR file, without depositing a revision. With
- \fBcvs\fR, add files with the \fBcvs add\fR command
- (see node `Adding files\(aq in the CVS manual).
- .SP
- .IP "" 0
- \fB-k\fIsubst\fB\fR
- .IP "" 2
- Set the default keyword
- substitution to \fIsubst\fR. See `Keyword
- substitution\(aq in the CVS manual. Giving an explicit \fB-k\fR option to
- \fBcvs update\fR, \fBcvs export\fR, or \fBcvs
- checkout\fR overrides this default.
- .SP
- .IP "" 0
- \fB-l[\fIrev\fB]\fR
- .IP "" 2
- Lock the revision with number \fIrev\fR. If a branch
- is given, lock the latest revision on that branch. If
- \fIrev\fR is omitted, lock the latest revision on the
- default branch. There can be no space between
- \fB-l\fR and its argument.
- .SP
- This can be used in conjunction with the
- \fBrcslock.pl\fR script in the \fBcontrib\fR
- directory of the \fBcvs\fR source distribution to
- provide reserved checkouts (where only one user can be
- editing a given file at a time). See the comments in
- that file for details (and see the \fBREADME\fR file
- in that directory for disclaimers about the unsupported
- nature of contrib). According to comments in that
- file, locking must set to strict (which is the default).
- .SP
- .IP "" 0
- \fB-L\fR
- .IP "" 2
- Set locking to strict. Strict locking means that the
- owner of an RCS file is not exempt from locking for
- checkin. For use with \fBcvs\fR, strict locking must be
- set; see the discussion under the \fB-l\fR option above.
- .SP
- .IX "Changing a log message"
- .IX "Replacing a log message"
- .IX "Correcting a log message"
- .IX "Fixing a log message"
- .IX "Log message, correcting"
- .IP "" 0
- \fB-m\fIrev\fB:\fImsg\fB\fR
- .IP "" 2
- Replace the log message of revision \fIrev\fR with
- \fImsg\fR.
- .SP
- .IP "" 0
- \fB-N\fIname\fB[:[\fIrev\fB]]\fR
- .IP "" 2
- Act like \fB-n\fR, except override any previous
- assignment of \fIname\fR. For use with magic branches,
- see `Magic branch numbers\(aq in the CVS manual.
- .SP
- .IP "" 0
- \fB-n\fIname\fB[:[\fIrev\fB]]\fR
- .IP "" 2
- Associate the symbolic name \fIname\fR with the branch
- or revision \fIrev\fR. It is normally better to use
- \fBcvs tag\fR or \fBcvs rtag\fR instead. Delete the
- symbolic name if both \fB:\fR and \fIrev\fR are
- omitted; otherwise, print an error message if
- \fIname\fR is already associated with another number.
- If \fIrev\fR is symbolic, it is expanded before
- association. A \fIrev\fR consisting of a branch number
- followed by a \fB.\fR stands for the current latest
- revision in the branch. A \fB:\fR with an empty
- \fIrev\fR stands for the current latest revision on the
- default branch, normally the trunk. For example,
- \fBcvs admin -n\fIname\fB:\fR associates \fIname\fR with the
- current latest revision of all the RCS files;
- this contrasts with \fBcvs admin -n\fIname\fB:$\fR which
- associates \fIname\fR with the revision numbers
- extracted from keyword strings in the corresponding
- working files.
- .SP
- .IX "Deleting revisions"
- .IX "Outdating revisions"
- .IX "Saving space"
- .IP "" 0
- \fB-o\fIrange\fB\fR
- .IP "" 2
- Deletes (\fIoutdates\fR) the revisions given by
- \fIrange\fR.
- .SP
- Note that this command can be quite dangerous unless
- you know \fIexactly\fR what you are doing (for example
- see the warnings below about how the
- \fIrev1\fR:\fIrev2\fR syntax is confusing).
- .SP
- If you are short on disc this option might help you.
- But think twice before using it\(emthere is no way short
- of restoring the latest backup to undo this command!
- If you delete different revisions than you planned,
- either due to carelessness or (heaven forbid) a \fBcvs\fR
- bug, there is no opportunity to correct the error
- before the revisions are deleted. It probably would be
- a good idea to experiment on a copy of the repository
- first.
- .SP
- Specify \fIrange\fR in one of the following ways:
- .SP
- .IP "" 2
- \fB\fIrev1\fB::\fIrev2\fB\fR
- .IP "" 4
- Collapse all revisions between rev1 and rev2, so that
- \fBcvs\fR only stores the differences associated with going
- from rev1 to rev2, not intermediate steps. For
- example, after \fB-o 1.3::1.5\fR one can retrieve
- revision 1.3, revision 1.5, or the differences to get
- from 1.3 to 1.5, but not the revision 1.4, or the
- differences between 1.3 and 1.4. Other examples:
- \fB-o 1.3::1.4\fR and \fB-o 1.3::1.3\fR have no
- effect, because there are no intermediate revisions to
- remove.
- .SP
- .IP "" 2
- \fB::\fIrev\fB\fR
- .IP "" 4
- Collapse revisions between the beginning of the branch
- containing \fIrev\fR and \fIrev\fR itself. The
- branchpoint and \fIrev\fR are left intact. For
- example, \fB-o ::1.3.2.6\fR deletes revision 1.3.2.1,
- revision 1.3.2.5, and everything in between, but leaves
- 1.3 and 1.3.2.6 intact.
- .SP
- .IP "" 2
- \fB\fIrev\fB::\fR
- .IP "" 4
- Collapse revisions between \fIrev\fR and the end of the
- branch containing \fIrev\fR. Revision \fIrev\fR is
- left intact but the head revision is deleted.
- .SP
- .IP "" 2
- \fB\fIrev\fB\fR
- .IP "" 4
- Delete the revision \fIrev\fR. For example, \fB-o
- 1.3\fR is equivalent to \fB-o 1.2::1.4\fR.
- .SP
- .IP "" 2
- \fB\fIrev1\fB:\fIrev2\fB\fR
- .IP "" 4
- Delete the revisions from \fIrev1\fR to \fIrev2\fR,
- inclusive, on the same branch. One will not be able to
- retrieve \fIrev1\fR or \fIrev2\fR or any of the
- revisions in between. For example, the command
- \fBcvs admin -oR_1_01:R_1_02 \&.\fR is rarely useful.
- It means to delete revisions up to, and including, the
- tag R_1_02. But beware! If there are files that have not
- changed between R_1_02 and R_1_03 the file will have
- \fIthe same\fR numerical revision number assigned to
- the tags R_1_02 and R_1_03. So not only will it be
- impossible to retrieve R_1_02; R_1_03 will also have to
- be restored from the tapes! In most cases you want to
- specify \fIrev1\fR::\fIrev2\fR instead.
- .SP
- .IP "" 2
- \fB:\fIrev\fB\fR
- .IP "" 4
- Delete revisions from the beginning of the
- branch containing \fIrev\fR up to and including
- \fIrev\fR.
- .SP
- .IP "" 2
- \fB\fIrev\fB:\fR
- .IP "" 4
- Delete revisions from revision \fIrev\fR, including
- \fIrev\fR itself, to the end of the branch containing
- \fIrev\fR.
- .SP
- None of the revisions to be deleted may have
- branches or locks.
- .SP
- If any of the revisions to be deleted have symbolic
- names, and one specifies one of the \fB::\fR syntaxes,
- then \fBcvs\fR will give an error and not delete any
- revisions. If you really want to delete both the
- symbolic names and the revisions, first delete the
- symbolic names with \fBcvs tag -d\fR, then run
- \fBcvs admin -o\fR. If one specifies the
- non-\fB::\fR syntaxes, then \fBcvs\fR will delete the
- revisions but leave the symbolic names pointing to
- nonexistent revisions. This behavior is preserved for
- compatibility with previous versions of \fBcvs\fR, but
- because it isn\(aqt very useful, in the future it may
- change to be like the \fB::\fR case.
- .SP
- Due to the way \fBcvs\fR handles branches \fIrev\fR
- cannot be specified symbolically if it is a branch.
- See `Magic branch numbers\(aq in the CVS manual for an explanation.
- .SP
- Make sure that no-one has checked out a copy of the
- revision you outdate. Strange things will happen if he
- starts to edit it and tries to check it back in. For
- this reason, this option is not a good way to take back
- a bogus commit; commit a new revision undoing the bogus
- change instead (see node `Merging two revisions\(aq in the CVS manual).
- .SP
- .IP "" 0
- \fB-q\fR
- .IP "" 2
- Run quietly; do not print diagnostics.
- .SP
- .IP "" 0
- \fB-s\fIstate\fB[:\fIrev\fB]\fR
- .IP "" 2
- Useful with \fBcvs\fR. Set the state attribute of the
- revision \fIrev\fR to \fIstate\fR. If \fIrev\fR is a
- branch number, assume the latest revision on that
- branch. If \fIrev\fR is omitted, assume the latest
- revision on the default branch. Any identifier is
- acceptable for \fIstate\fR. A useful set of states is
- \fBExp\fR (for experimental), \fBStab\fR (for
- stable), and \fBRel\fR (for released). By default,
- the state of a new revision is set to \fBExp\fR when
- it is created. The state is visible in the output from
- \fIcvs log\fR (see node `log\(aq in the CVS manual), and in the
- \fB$\fP\fPLog$\fR and \fB$\fP\fPState$\fR keywords
- (see node `Keyword substitution\(aq in the CVS manual). Note that \fBcvs\fR
- uses the \fBdead\fR state for its own purposes (see node `Attic\(aq in the CVS manual); to
- take a file to or from the \fBdead\fR state use
- commands like \fBcvs remove\fR and \fBcvs add\fR
- (see node `Adding and removing\(aq in the CVS manual), not \fBcvs admin -s\fR.
- .SP
- .IP "" 0
- \fB-t[\fIfile\fB]\fR
- .IP "" 2
- Useful with \fBcvs\fR. Write descriptive text from the
- contents of the named \fIfile\fR into the RCS file,
- deleting the existing text. The \fIfile\fR pathname
- may not begin with \fB-\fR. The descriptive text can be seen in the
- output from \fBcvs log\fR (see node `log\(aq in the CVS manual).
- There can be no space between \fB-t\fR and its argument.
- .SP
- If \fIfile\fR is omitted,
- obtain the text from standard input, terminated by
- end-of-file or by a line containing \fB.\fR by itself.
- Prompt for the text if interaction is possible; see
- \fB-I\fR.
- .SP
- .IP "" 0
- \fB-t-\fIstring\fB\fR
- .IP "" 2
- Similar to \fB-t\fIfile\fB\fR. Write descriptive text
- from the \fIstring\fR into the \fBrcs\fR file, deleting
- the existing text.
- There can be no space between \fB-t\fR and its argument.
- .SP
- .IP "" 0
- \fB-U\fR
- .IP "" 2
- Set locking to non-strict. Non-strict locking means
- that the owner of a file need not lock a revision for
- checkin. For use with \fBcvs\fR, strict locking must be
- set; see the discussion under the \fB-l\fR option
- above.
- .SP
- .IP "" 0
- \fB-u[\fIrev\fB]\fR
- .IP "" 2
- See the option \fB-l\fR above, for a discussion of
- using this option with \fBcvs\fR. Unlock the revision
- with number \fIrev\fR. If a branch is given, unlock
- the latest revision on that branch. If \fIrev\fR is
- omitted, remove the latest lock held by the caller.
- Normally, only the locker of a revision may unlock it;
- somebody else unlocking a revision breaks the lock.
- This causes the original locker to be sent a \fBcommit\fR
- notification (see node `Getting Notified\(aq in the CVS manual).
- There can be no space between \fB-u\fR and its argument.
- .SP
- .IP "" 0
- \fB-V\fIn\fB\fR
- .IP "" 2
- In previous versions of \fBcvs\fR, this option meant to
- write an \fBrcs\fR file which would be acceptable to
- \fBrcs\fR version \fIn\fR, but it is now obsolete and
- specifying it will produce an error.
- .SP
- .IP "" 0
- \fB-x\fIsuffixes\fB\fR
- .IP "" 2
- In previous versions of \fBcvs\fR, this was documented
- as a way of specifying the names of the \fBrcs\fR
- files. However, \fBcvs\fR has always required that the
- \fBrcs\fR files used by \fBcvs\fR end in \fB,v\fR, so
- this option has never done anything useful.
- .SP
- .SP
- .SH "annotate"
- .SS "What revision modified each line of a file?"
- .IX "annotate (subcommand)"
- .SP
- .IP "\(bu" 2
- Synopsis: annotate [options] files\&...
- .IP "\(bu" 2
- Requires: repository.
- .IP "\(bu" 2
- Synonym: blame
- .IP "\(bu" 2
- Changes: nothing.
- .SP
- For each file in \fIfiles\fR, print the head revision
- of the trunk, together with information on the last
- modification for each line.
- .SP
- .SH "annotate options"
- .SP
- These standard options are supported by \fBannotate\fR
- (see node `Common options\(aq in the CVS manual for a complete description of
- them):
- .SP
- .IP "" 0
- \fB-l\fR
- .IP "" 2
- Local directory only, no recursion.
- .SP
- .IP "" 0
- \fB-R\fR
- .IP "" 2
- Process directories recursively.
- .SP
- .IP "" 0
- \fB-f\fR
- .IP "" 2
- Use head revision if tag/date not found.
- .SP
- .IP "" 0
- \fB-F\fR
- .IP "" 2
- Annotate binary files.
- .SP
- .IP "" 0
- \fB-r \fIrevision\fB\fR
- .IP "" 2
- Annotate file as of specified revision/tag.
- .SP
- .IP "" 0
- \fB-D \fIdate\fB\fR
- .IP "" 2
- Annotate file as of specified date.
- .SP
- .SH "annotate example"
- .SP
- For example:
- .SP
- .PD 0
- .SP
- .IP "" 2
- $ cvs annotate ssfile
- .IP "" 2
- Annotations for ssfile
- .IP "" 2
- ***************
- .IP "" 2
- 1.1 (mary 27-Mar-96): ssfile line 1
- .IP "" 2
- 1.2 (joe 28-Mar-96): ssfile line 2
- .PD
- .IP "" 0
- .SP
- The file \fBssfile\fR currently contains two lines.
- The \fBssfile line 1\fR line was checked in by
- \fBmary\fR on March 27. Then, on March 28, \fBjoe\fR
- added a line \fBssfile line 2\fR, without modifying
- the \fBssfile line 1\fR line. This report doesn\(aqt
- tell you anything about lines which have been deleted
- or replaced; you need to use \fBcvs diff\fR for that
- (see node `diff\(aq in the CVS manual).
- .SP
- The options to \fBcvs annotate\fR are listed in
- `Invoking CVS\(aq in the CVS manual, and can be used to select the files
- and revisions to annotate. The options are described
- in more detail there and in `Common options\(aq in the CVS manual.
- .SP
- .SH "checkout"
- .SS "Check out sources for editing"
- .IX "checkout (subcommand)"
- .IX "co (subcommand)"
- .SP
- .IP "\(bu" 2
- Synopsis: checkout [options] modules\&...
- .IP "\(bu" 2
- Requires: repository.
- .IP "\(bu" 2
- Changes: working directory.
- .IP "\(bu" 2
- Synonyms: co, get
- .SP
- Create or update a working directory containing copies of the
- source files specified by \fImodules\fR. You must execute
- \fBcheckout\fR before using most of the other \fBcvs\fR
- commands, since most of them operate on your working
- directory.
- .SP
- The \fImodules\fR are either
- symbolic names for some
- collection of source directories and files, or paths to
- directories or files in the repository. The symbolic
- names are defined in the \fBmodules\fR file.
- See `modules\(aq in the CVS manual.
- .SP
- Depending on the modules you specify, \fBcheckout\fR may
- recursively create directories and populate them with
- the appropriate source files. You can then edit these
- source files at any time (regardless of whether other
- software developers are editing their own copies of the
- sources); update them to include new changes applied by
- others to the source repository; or commit your work as
- a permanent change to the source repository.
- .SP
- Note that \fBcheckout\fR is used to create
- directories. The top-level directory created is always
- added to the directory where \fBcheckout\fR is
- invoked, and usually has the same name as the specified
- module. In the case of a module alias, the created
- sub-directory may have a different name, but you can be
- sure that it will be a sub-directory, and that
- \fBcheckout\fR will show the relative path leading to
- each file as it is extracted into your private work
- area (unless you specify the \fB-Q\fR global option).
- .SP
- The files created by \fBcheckout\fR are created
- read-write, unless the \fB-r\fR option to \fBcvs\fR
- (see node `Global options\(aq in the CVS manual) is specified, the
- \fBCVSREAD\fR environment variable is specified
- (see node `Environment variables\(aq in the CVS manual), or a watch is in
- effect for that file (see node `Watches\(aq in the CVS manual).
- .SP
- Note that running \fBcheckout\fR on a directory that was already
- built by a prior \fBcheckout\fR is also permitted.
- This is similar to specifying the \fB-d\fR option
- to the \fBupdate\fR command in the sense that new
- directories that have been created in the repository
- will appear in your work area.
- However, \fBcheckout\fR takes a module name whereas
- \fBupdate\fR takes a directory name. Also
- to use \fBcheckout\fR this way it must be run from the
- top level directory (where you originally ran
- \fBcheckout\fR from), so before you run
- \fBcheckout\fR to update an existing directory, don\(aqt
- forget to change your directory to the top level
- directory.
- .SP
- For the output produced by the \fBcheckout\fR command,
- see node `update output\(aq in the CVS manual.
- .SP
- .SH "checkout options"
- .SP
- These standard options are supported by \fBcheckout\fR
- (see node `Common options\(aq in the CVS manual for a complete description of
- them):
- .SP
- .IP "" 0
- \fB-D \fIdate\fB\fR
- .IP "" 2
- Use the most recent revision no later than \fIdate\fR.
- This option is sticky, and implies \fB-P\fR. See
- `Sticky tags\(aq in the CVS manual for more information on sticky tags/dates.
- .SP
- .IP "" 0
- \fB-f\fR
- .IP "" 2
- Only useful with the \fB-D \fIdate\fB\fR or \fB-r
- \fItag\fB\fR flags. If no matching revision is found,
- retrieve the most recent revision (instead of ignoring
- the file).
- .SP
- .IP "" 0
- \fB-k \fIkflag\fB\fR
- .IP "" 2
- Process keywords according to \fIkflag\fR. See
- `Keyword substitution\(aq in the CVS manual.
- This option is sticky; future updates of
- this file in this working directory will use the same
- \fIkflag\fR. The \fBstatus\fR command can be viewed
- to see the sticky options. See `Invoking CVS\(aq in the CVS manual for
- more information on the \fBstatus\fR command.
- .SP
- .IP "" 0
- \fB-l\fR
- .IP "" 2
- Local; run only in current working directory.
- .SP
- .IP "" 0
- \fB-n\fR
- .IP "" 2
- Do not run any checkout program (as specified
- with the \fB-o\fR option in the modules file;
- see node `modules\(aq in the CVS manual).
- .SP
- .IP "" 0
- \fB-P\fR
- .IP "" 2
- Prune empty directories. See `Moving directories\(aq in the CVS manual.
- .SP
- .IP "" 0
- \fB-p\fR
- .IP "" 2
- Pipe files to the standard output.
- .SP
- .IP "" 0
- \fB-R\fR
- .IP "" 2
- Checkout directories recursively. This option is on by default.
- .SP
- .IP "" 0
- \fB-r \fItag\fB\fR
- .IP "" 2
- Use revision \fItag\fR. This option is sticky, and implies \fB-P\fR.
- See `Sticky tags\(aq in the CVS manual, for more information on sticky tags/dates.
- .SP
- In addition to those, you can use these special command
- options with \fBcheckout\fR:
- .SP
- .IP "" 0
- \fB-A\fR
- .IP "" 2
- Reset any sticky tags, dates, or \fB-k\fR options.
- Does not reset sticky \fB-k\fR options on modified files.
- See `Sticky tags\(aq in the CVS manual for more information on sticky tags/dates.
- .SP
- .IP "" 0
- \fB-c\fR
- .IP "" 2
- Copy the module file, sorted, to the standard output,
- instead of creating or modifying any files or
- directories in your working directory.
- .SP
- .IP "" 0
- \fB-d \fIdir\fB\fR
- .IP "" 2
- Create a directory called \fIdir\fR for the working
- files, instead of using the module name. In general,
- using this flag is equivalent to using \fBmkdir
- \fIdir\fB; cd \fIdir\fB\fR followed by the checkout
- command without the \fB-d\fR flag.
- .SP
- There is an important exception, however. It is very
- convenient when checking out a single item to have the
- output appear in a directory that doesn\(aqt contain empty
- intermediate directories. In this case \fIonly\fR,
- \fBcvs\fR tries to \`\`shorten\(aq\(aq pathnames to avoid those empty
- directories.
- .SP
- For example, given a module \fBfoo\fR that contains
- the file \fBbar.c\fR, the command \fBcvs co -d dir
- foo\fR will create directory \fBdir\fR and place
- \fBbar.c\fR inside. Similarly, given a module
- \fBbar\fR which has subdirectory \fBbaz\fR wherein
- there is a file \fBquux.c\fR, the command \fBcvs co
- -d dir bar/baz\fR will create directory \fBdir\fR and
- place \fBquux.c\fR inside.
- .SP
- Using the \fB-N\fR flag will defeat this behavior.
- Given the same module definitions above, \fBcvs co
- -N -d dir foo\fR will create directories \fBdir/foo\fR
- and place \fBbar.c\fR inside, while \fBcvs co -N -d
- dir bar/baz\fR will create directories \fBdir/bar/baz\fR
- and place \fBquux.c\fR inside.
- .SP
- .IP "" 0
- \fB-j \fItag\fB\fR
- .IP "" 2
- With two \fB-j\fR options, merge changes from the
- revision specified with the first \fB-j\fR option to
- the revision specified with the second \fBj\fR option,
- into the working directory.
- .SP
- With one \fB-j\fR option, merge changes from the
- ancestor revision to the revision specified with the
- \fB-j\fR option, into the working directory. The
- ancestor revision is the common ancestor of the
- revision which the working directory is based on, and
- the revision specified in the \fB-j\fR option.
- .SP
- In addition, each -j option can contain an optional
- date specification which, when used with branches, can
- limit the chosen revision to one within a specific
- date. An optional date is specified by adding a colon
- (:) to the tag:
- \fB-j\fISymbolic_Tag\fB:\fIDate_Specifier\fB\fR.
- .SP
- See `Branching and merging\(aq in the CVS manual.
- .SP
- .IP "" 0
- \fB-N\fR
- .IP "" 2
- Only useful together with \fB-d \fIdir\fB\fR. With
- this option, \fBcvs\fR will not \`\`shorten\(aq\(aq module paths
- in your working directory when you check out a single
- module. See the \fB-d\fR flag for examples and a
- discussion.
- .SP
- .IP "" 0
- \fB-s\fR
- .IP "" 2
- Like \fB-c\fR, but include the status of all modules,
- and sort it by the status string. See `modules\(aq in the CVS manual, for
- info about the \fB-s\fR option that is used inside the
- modules file to set the module status.
- .SP
- .SH "checkout examples"
- .SP
- Get a copy of the module \fBtc\fR:
- .SP
- .PD 0
- .SP
- .IP "" 2
- $ cvs checkout tc
- .PD
- .IP "" 0
- .SP
- Get a copy of the module \fBtc\fR as it looked one day
- ago:
- .SP
- .PD 0
- .SP
- .IP "" 2
- $ cvs checkout -D yesterday tc
- .PD
- .IP "" 0
- .SP
- .SH "commit"
- .SS "Check files into the repository"
- .IX "commit (subcommand)"
- .SP
- .IP "\(bu" 2
- Synopsis: commit [-lRf] [-m \(aqlog_message\(aq |
- -F file] [-r revision] [files\&...]
- .IP "\(bu" 2
- Requires: working directory, repository.
- .IP "\(bu" 2
- Changes: repository.
- .IP "\(bu" 2
- Synonym: ci
- .SP
- Use \fBcommit\fR when you want to incorporate changes
- from your working source files into the source
- repository.
- .SP
- If you don\(aqt specify particular files to commit, all of
- the files in your working current directory are
- examined. \fBcommit\fR is careful to change in the
- repository only those files that you have really
- changed. By default (or if you explicitly specify the
- \fB-R\fR option), files in subdirectories are also
- examined and committed if they have changed; you can
- use the \fB-l\fR option to limit \fBcommit\fR to the
- current directory only.
- .SP
- \fBcommit\fR verifies that the selected files are up
- to date with the current revisions in the source
- repository; it will notify you, and exit without
- committing, if any of the specified files must be made
- current first with \fBupdate\fR (see node `update\(aq in the CVS manual).
- \fBcommit\fR does not call the \fBupdate\fR command
- for you, but rather leaves that for you to do when the
- time is right.
- .SP
- When all is well, an editor is invoked to allow you to
- enter a log message that will be written to one or more
- logging programs (see node `modules\(aq in the CVS manual, and see node `loginfo\(aq in the CVS manual)
- and placed in the \fBrcs\fR file inside the
- repository. This log message can be retrieved with the
- \fBlog\fR command; see node `log\(aq in the CVS manual. You can specify the
- log message on the command line with the \fB-m
- \fImessage\fB\fR option, and thus avoid the editor invocation,
- or use the \fB-F \fIfile\fB\fR option to specify
- that the argument file contains the log message.
- .SP
- .SH "commit options"
- .SP
- These standard options are supported by \fBcommit\fR
- (see node `Common options\(aq in the CVS manual for a complete description of
- them):
- .SP
- .IP "" 0
- \fB-l\fR
- .IP "" 2
- Local; run only in current working directory.
- .SP
- .IP "" 0
- \fB-R\fR
- .IP "" 2
- Commit directories recursively. This is on by default.
- .SP
- .IP "" 0
- \fB-r \fIrevision\fB\fR
- .IP "" 2
- Commit to \fIrevision\fR. \fIrevision\fR must be
- either a branch, or a revision on the main trunk that
- is higher than any existing revision number
- (see node `Assigning revisions\(aq in the CVS manual). You
- cannot commit to a specific revision on a branch.
- .SP
- \fBcommit\fR also supports these options:
- .SP
- .IP "" 0
- \fB-F \fIfile\fB\fR
- .IP "" 2
- Read the log message from \fIfile\fR, instead
- of invoking an editor.
- .SP
- .IP "" 0
- \fB-f\fR
- .IP "" 2
- Note that this is not the standard behavior of
- the \fB-f\fR option as defined in `Common options\(aq in the CVS manual.
- .SP
- Force \fBcvs\fR to commit a new revision even if you haven\(aqt
- made any changes to the file. If the current revision
- of \fIfile\fR is 1.7, then the following two commands
- are equivalent:
- .SP
- .PD 0
- .SP
- .IP "" 4
- $ cvs commit -f \fIfile\fR
- .IP "" 4
- $ cvs commit -r 1.8 \fIfile\fR
- .PD
- .IP "" 2
- .SP
- The \fB-f\fR option disables recursion (i.e., it
- implies \fB-l\fR). To force \fBcvs\fR to commit a new
- revision for all files in all subdirectories, you must
- use \fB-f -R\fR.
- .SP
- .IP "" 0
- \fB-m \fImessage\fB\fR
- .IP "" 2
- Use \fImessage\fR as the log message, instead of
- invoking an editor.
- .SP
- .SH "commit examples"
- .SP
- .SS "Committing to a branch"
- .SP
- You can commit to a branch revision (one that has an
- even number of dots) with the \fB-r\fR option. To
- create a branch revision, use the \fB-b\fR option
- of the \fBrtag\fR or \fBtag\fR commands
- (see node `Branching and merging\(aq in the CVS manual). Then, either \fBcheckout\fR or
- \fBupdate\fR can be used to base your sources on the
- newly created branch. From that point on, all
- \fBcommit\fR changes made within these working sources
- will be automatically added to a branch revision,
- thereby not disturbing main-line development in any
- way. For example, if you had to create a patch to the
- 1.2 version of the product, even though the 2.0 version
- is already under development, you might do:
- .SP
- .PD 0
- .SP
- .IP "" 2
- $ cvs rtag -b -r FCS1_2 FCS1_2_Patch product_module
- .IP "" 2
- $ cvs checkout -r FCS1_2_Patch product_module
- .IP "" 2
- $ cd product_module
- .IP "" 2
- [[ hack away ]]
- .IP "" 2
- $ cvs commit
- .PD
- .IP "" 0
- .SP
- This works automatically since the \fB-r\fR option is
- sticky.
- .SP
- .SS "Creating the branch after editing"
- .SP
- Say you have been working on some extremely
- experimental software, based on whatever revision you
- happened to checkout last week. If others in your
- group would like to work on this software with you, but
- without disturbing main-line development, you could
- commit your change to a new branch. Others can then
- checkout your experimental stuff and utilize the full
- benefit of \fBcvs\fR conflict resolution. The scenario might
- look like:
- .SP
- .PD 0
- .SP
- .IP "" 2
- [[ hacked sources are present ]]
- .IP "" 2
- $ cvs tag -b EXPR1
- .IP "" 2
- $ cvs update -r EXPR1
- .IP "" 2
- $ cvs commit
- .PD
- .IP "" 0
- .SP
- The \fBupdate\fR command will make the \fB-r
- EXPR1\fR option sticky on all files. Note that your
- changes to the files will never be removed by the
- \fBupdate\fR command. The \fBcommit\fR will
- automatically commit to the correct branch, because the
- \fB-r\fR is sticky. You could also do like this:
- .SP
- .PD 0
- .SP
- .IP "" 2
- [[ hacked sources are present ]]
- .IP "" 2
- $ cvs tag -b EXPR1
- .IP "" 2
- $ cvs commit -r EXPR1
- .PD
- .IP "" 0
- .SP
- but then, only those files that were changed by you
- will have the \fB-r EXPR1\fR sticky flag. If you hack
- away, and commit without specifying the \fB-r EXPR1\fR
- flag, some files may accidentally end up on the main
- trunk.
- .SP
- To work with you on the experimental change, others
- would simply do
- .SP
- .PD 0
- .SP
- .IP "" 2
- $ cvs checkout -r EXPR1 whatever_module
- .PD
- .IP "" 0
- .SP
- .SH "diff"
- .SS "Show differences between revisions"
- .IX "diff (subcommand)"
- .SP
- .IP "\(bu" 2
- Synopsis: diff [-lR] [-k kflag] [format_options] [[-r rev1 | -D date1] [-r rev2 | -D date2]] [files\&...]
- .IP "\(bu" 2
- Requires: working directory, repository.
- .IP "\(bu" 2
- Changes: nothing.
- .SP
- The \fBdiff\fR command is used to compare different
- revisions of files. The default action is to compare
- your working files with the revisions they were based
- on, and report any differences that are found.
- .SP
- If any file names are given, only those files are
- compared. If any directories are given, all files
- under them will be compared.
- .SP
- The exit status for diff is different than for other
- \fBcvs\fR commands; for details see node `Exit status\(aq in the CVS manual.
- .SP
- .SH "diff options"
- .SP
- These standard options are supported by \fBdiff\fR
- (see node `Common options\(aq in the CVS manual for a complete description of
- them):
- .SP
- .IP "" 0
- \fB-D \fIdate\fB\fR
- .IP "" 2
- Use the most recent revision no later than \fIdate\fR.
- See \fB-r\fR for how this affects the comparison.
- .SP
- .IP "" 0
- \fB-k \fIkflag\fB\fR
- .IP "" 2
- Process keywords according to \fIkflag\fR. See
- `Keyword substitution\(aq in the CVS manual.
- .SP
- .IP "" 0
- \fB-l\fR
- .IP "" 2
- Local; run only in current working directory.
- .SP
- .IP "" 0
- \fB-R\fR
- .IP "" 2
- Examine directories recursively. This option is on by
- default.
- .SP
- .IP "" 0
- \fB-r \fItag\fB\fR
- .IP "" 2
- Compare with revision \fItag\fR. Zero, one or two
- \fB-r\fR options can be present. With no \fB-r\fR
- option, the working file will be compared with the
- revision it was based on. With one \fB-r\fR, that
- revision will be compared to your current working file.
- With two \fB-r\fR options those two revisions will be
- compared (and your working file will not affect the
- outcome in any way).
- .SP
- One or both \fB-r\fR options can be replaced by a
- \fB-D \fIdate\fB\fR option, described above.
- .SP
- The following options specify the format of the
- output. They have the same meaning as in GNU diff.
- Most options have two equivalent names, one of which is a single letter
- preceded by \fB-\fR, and the other of which is a long name preceded by
- \fB--\fR.
- .SP
- .IP "" 0
- \fB-\fIlines\fB\fR
- .IP "" 2
- Show \fIlines\fR (an integer) lines of context. This option does not
- specify an output format by itself; it has no effect unless it is
- combined with \fB-c\fR or \fB-u\fR. This option is obsolete. For proper
- operation, \fBpatch\fR typically needs at least two lines of context.
- .SP
- .IP "" 0
- \fB-a\fR
- .IP "" 2
- Treat all files as text and compare them line-by-line, even if they
- do not seem to be text.
- .SP
- .IP "" 0
- \fB-b\fR
- .IP "" 2
- Ignore trailing white space and consider all other sequences of one or
- more white space characters to be equivalent.
- .SP
- .IP "" 0
- \fB-B\fR
- .IP "" 2
- Ignore changes that just insert or delete blank lines.
- .SP
- .IP "" 0
- \fB--binary\fR
- .IP "" 2
- Read and write data in binary mode.
- .SP
- .IP "" 0
- \fB--brief\fR
- .IP "" 2
- Report only whether the files differ, not the details of the
- differences.
- .SP
- .IP "" 0
- \fB-c\fR
- .IP "" 2
- Use the context output format.
- .SP
- .IP "" 0
- \fB-C \fIlines\fB\fR
- .IP "" 2
- .IP "" 0
- \fB--context\fR[\fB=\fIlines\fB\fR]\fB\fR
- .IP "" 2
- Use the context output format, showing \fIlines\fR (an integer) lines of
- context, or three if \fIlines\fR is not given.
- For proper operation, \fBpatch\fR typically needs at least two lines of
- context.
- .SP
- .IP "" 0
- \fB--changed-group-format=\fIformat\fB\fR
- .IP "" 2
- Use \fIformat\fR to output a line group containing differing lines from
- both files in if-then-else format. See `Line group formats\(aq in the CVS manual.
- .SP
- .IP "" 0
- \fB-d\fR
- .IP "" 2
- Change the algorithm to perhaps find a smaller set of changes. This makes
- \fBdiff\fR slower (sometimes much slower).
- .SP
- .IP "" 0
- \fB-e\fR
- .IP "" 2
- .IP "" 0
- \fB--ed\fR
- .IP "" 2
- Make output that is a valid \fBed\fR script.
- .SP
- .IP "" 0
- \fB--expand-tabs\fR
- .IP "" 2
- Expand tabs to spaces in the output, to preserve the alignment of tabs
- in the input files.
- .SP
- .IP "" 0
- \fB-f\fR
- .IP "" 2
- Make output that looks vaguely like an \fBed\fR script but has changes
- in the order they appear in the file.
- .SP
- .IP "" 0
- \fB-F \fIregexp\fB\fR
- .IP "" 2
- In context and unified format, for each hunk of differences, show some
- of the last preceding line that matches \fIregexp\fR.
- .SP
- .IP "" 0
- \fB--forward-ed\fR
- .IP "" 2
- Make output that looks vaguely like an \fBed\fR script but has changes
- in the order they appear in the file.
- .SP
- .IP "" 0
- \fB-H\fR
- .IP "" 2
- Use heuristics to speed handling of large files that have numerous
- scattered small changes.
- .SP
- .IP "" 0
- \fB--horizon-lines=\fIlines\fB\fR
- .IP "" 2
- Do not discard the last \fIlines\fR lines of the common prefix
- and the first \fIlines\fR lines of the common suffix.
- .SP
- .IP "" 0
- \fB-i\fR
- .IP "" 2
- Ignore changes in case; consider upper- and lower-case letters
- equivalent.
- .SP
- .IP "" 0
- \fB-I \fIregexp\fB\fR
- .IP "" 2
- Ignore changes that just insert or delete lines that match \fIregexp\fR.
- .SP
- .IP "" 0
- \fB--ifdef=\fIname\fB\fR
- .IP "" 2
- Make merged if-then-else output using \fIname\fR.
- .SP
- .IP "" 0
- \fB--ignore-all-space\fR
- .IP "" 2
- Ignore white space when comparing lines.
- .SP
- .IP "" 0
- \fB--ignore-blank-lines\fR
- .IP "" 2
- Ignore changes that just insert or delete blank lines.
- .SP
- .IP "" 0
- \fB--ignore-case\fR
- .IP "" 2
- Ignore changes in case; consider upper- and lower-case to be the same.
- .SP
- .IP "" 0
- \fB--ignore-matching-lines=\fIregexp\fB\fR
- .IP "" 2
- Ignore changes that just insert or delete lines that match \fIregexp\fR.
- .SP
- .IP "" 0
- \fB--ignore-space-change\fR
- .IP "" 2
- Ignore trailing white space and consider all other sequences of one or
- more white space characters to be equivalent.
- .SP
- .IP "" 0
- \fB--initial-tab\fR
- .IP "" 2
- Output a tab rather than a space before the text of a line in normal or
- context format. This causes the alignment of tabs in the line to look
- normal.
- .SP
- .IP "" 0
- \fB-L \fIlabel\fB\fR
- .IP "" 2
- Use \fIlabel\fR instead of the file name in the context format
- and unified format headers.
- .SP
- .IP "" 0
- \fB--label=\fIlabel\fB\fR
- .IP "" 2
- Use \fIlabel\fR instead of the file name in the context format
- and unified format headers.
- .SP
- .IP "" 0
- \fB--left-column\fR
- .IP "" 2
- Print only the left column of two common lines in side by side format.
- .SP
- .IP "" 0
- \fB--line-format=\fIformat\fB\fR
- .IP "" 2
- Use \fIformat\fR to output all input lines in if-then-else format.
- See `Line formats\(aq in the CVS manual.
- .SP
- .IP "" 0
- \fB--minimal\fR
- .IP "" 2
- Change the algorithm to perhaps find a smaller set of changes. This
- makes \fBdiff\fR slower (sometimes much slower).
- .SP
- .IP "" 0
- \fB-n\fR
- .IP "" 2
- Output RCS-format diffs; like \fB-f\fR except that each command
- specifies the number of lines affected.
- .SP
- .IP "" 0
- \fB-N\fR
- .IP "" 2
- .IP "" 0
- \fB--new-file\fR
- .IP "" 2
- In directory comparison, if a file is found in only one directory,
- treat it as present but empty in the other directory.
- .SP
- .IP "" 0
- \fB--new-group-format=\fIformat\fB\fR
- .IP "" 2
- Use \fIformat\fR to output a group of lines taken from just the second
- file in if-then-else format. See `Line group formats\(aq in the CVS manual.
- .SP
- .IP "" 0
- \fB--new-line-format=\fIformat\fB\fR
- .IP "" 2
- Use \fIformat\fR to output a line taken from just the second file in
- if-then-else format. See `Line formats\(aq in the CVS manual.
- .SP
- .IP "" 0
- \fB--old-group-format=\fIformat\fB\fR
- .IP "" 2
- Use \fIformat\fR to output a group of lines taken from just the first
- file in if-then-else format. See `Line group formats\(aq in the CVS manual.
- .SP
- .IP "" 0
- \fB--old-line-format=\fIformat\fB\fR
- .IP "" 2
- Use \fIformat\fR to output a line taken from just the first file in
- if-then-else format. See `Line formats\(aq in the CVS manual.
- .SP
- .IP "" 0
- \fB-p\fR
- .IP "" 2
- Show which C function each change is in.
- .SP
- .IP "" 0
- \fB--rcs\fR
- .IP "" 2
- Output RCS-format diffs; like \fB-f\fR except that each command
- specifies the number of lines affected.
- .SP
- .IP "" 0
- \fB--report-identical-files\fR
- .IP "" 2
- .IP "" 0
- \fB-s\fR
- .IP "" 2
- Report when two files are the same.
- .SP
- .IP "" 0
- \fB--show-c-function\fR
- .IP "" 2
- Show which C function each change is in.
- .SP
- .IP "" 0
- \fB--show-function-line=\fIregexp\fB\fR
- .IP "" 2
- In context and unified format, for each hunk of differences, show some
- of the last preceding line that matches \fIregexp\fR.
- .SP
- .IP "" 0
- \fB--side-by-side\fR
- .IP "" 2
- Use the side by side output format.
- .SP
- .IP "" 0
- \fB--speed-large-files\fR
- .IP "" 2
- Use heuristics to speed handling of large files that have numerous
- scattered small changes.
- .SP
- .IP "" 0
- \fB--suppress-common-lines\fR
- .IP "" 2
- Do not print common lines in side by side format.
- .SP
- .IP "" 0
- \fB-t\fR
- .IP "" 2
- Expand tabs to spaces in the output, to preserve the alignment of tabs
- in the input files.
- .SP
- .IP "" 0
- \fB-T\fR
- .IP "" 2
- Output a tab rather than a space before the text of a line in normal or
- context format. This causes the alignment of tabs in the line to look
- normal.
- .SP
- .IP "" 0
- \fB--text\fR
- .IP "" 2
- Treat all files as text and compare them line-by-line, even if they
- do not appear to be text.
- .SP
- .IP "" 0
- \fB-u\fR
- .IP "" 2
- Use the unified output format.
- .SP
- .IP "" 0
- \fB--unchanged-group-format=\fIformat\fB\fR
- .IP "" 2
- Use \fIformat\fR to output a group of common lines taken from both files
- in if-then-else format. see node `Line group formats\(aq in the CVS manual.
- .SP
- .IP "" 0
- \fB--unchanged-line-format=\fIformat\fB\fR
- .IP "" 2
- Use \fIformat\fR to output a line common to both files in if-then-else
- format. see node `Line formats\(aq in the CVS manual.
- .SP
- .IP "" 0
- \fB-U \fIlines\fB\fR
- .IP "" 2
- .IP "" 0
- \fB--unified\fR[\fB=\fIlines\fB\fR]\fB\fR
- .IP "" 2
- Use the unified output format, showing \fIlines\fR (an integer) lines of
- context, or three if \fIlines\fR is not given.
- For proper operation, \fBpatch\fR typically needs at least two lines of
- context.
- .SP
- .IP "" 0
- \fB-w\fR
- .IP "" 2
- Ignore white space when comparing lines.
- .SP
- .IP "" 0
- \fB-W \fIcolumns\fB\fR
- .IP "" 2
- .IP "" 0
- \fB--width=\fIcolumns\fB\fR
- .IP "" 2
- Use an output width of \fIcolumns\fR in side by side format.
- .SP
- .IP "" 0
- \fB-y\fR
- .IP "" 2
- Use the side by side output format.
- .SP
- .SH "Line group formats"
- .SP
- Line group formats let you specify formats suitable for many
- applications that allow if-then-else input, including programming
- languages and text formatting languages. A line group format specifies
- the output format for a contiguous group of similar lines.
- .SP
- For example, the following command compares the TeX file \fBmyfile\fR
- with the original version from the repository,
- and outputs a merged file in which old regions are
- surrounded by \fB\\begin{em}\fR-\fB\\end{em}\fR lines, and new
- regions are surrounded by \fB\\begin{bf}\fR-\fB\\end{bf}\fR lines.
- .SP
- .PD 0
- .SP
- .IP "" 2
- cvs diff \\
- .IP "" 2
- --old-group-format=\(aq\\begin{em}
- .IP "" 2
- %<\\end{em}
- .IP "" 2
- \(aq \\
- .IP "" 2
- --new-group-format=\(aq\\begin{bf}
- .IP "" 2
- %>\\end{bf}
- .IP "" 2
- \(aq \\
- .IP "" 2
- myfile
- .PD
- .IP "" 0
- .SP
- The following command is equivalent to the above example, but it is a
- little more verbose, because it spells out the default line group formats.
- .SP
- .PD 0
- .SP
- .IP "" 2
- cvs diff \\
- .IP "" 2
- --old-group-format=\(aq\\begin{em}
- .IP "" 2
- %<\\end{em}
- .IP "" 2
- \(aq \\
- .IP "" 2
- --new-group-format=\(aq\\begin{bf}
- .IP "" 2
- %>\\end{bf}
- .IP "" 2
- \(aq \\
- .IP "" 2
- --unchanged-group-format=\(aq%=\(aq \\
- .IP "" 2
- --changed-group-format=\(aq\\begin{em}
- .IP "" 2
- %<\\end{em}
- .IP "" 2
- \\begin{bf}
- .IP "" 2
- %>\\end{bf}
- .IP "" 2
- \(aq \\
- .IP "" 2
- myfile
- .PD
- .IP "" 0
- .SP
- Here is a more advanced example, which outputs a diff listing with
- headers containing line numbers in a \`\`plain English\(aq\(aq style.
- .SP
- .PD 0
- .SP
- .IP "" 2
- cvs diff \\
- .IP "" 2
- --unchanged-group-format=\(aq\(aq \\
- .IP "" 2
- --old-group-format=\(aq-------- %dn line%(n=1?:s) deleted at %df:
- .IP "" 2
- %<\(aq \\
- .IP "" 2
- --new-group-format=\(aq-------- %dN line%(N=1?:s) added after %de:
- .IP "" 2
- %>\(aq \\
- .IP "" 2
- --changed-group-format=\(aq-------- %dn line%(n=1?:s) changed at %df:
- .IP "" 2
- %<-------- to:
- .IP "" 2
- %>\(aq \\
- .IP "" 2
- myfile
- .PD
- .IP "" 0
- .SP
- To specify a line group format, use one of the options
- listed below. You can specify up to four line group formats, one for
- each kind of line group. You should quote \fIformat\fR, because it
- typically contains shell metacharacters.
- .SP
- .IP "" 0
- \fB--old-group-format=\fIformat\fB\fR
- .IP "" 2
- These line groups are hunks containing only lines from the first file.
- The default old group format is the same as the changed group format if
- it is specified; otherwise it is a format that outputs the line group as-is.
- .SP
- .IP "" 0
- \fB--new-group-format=\fIformat\fB\fR
- .IP "" 2
- These line groups are hunks containing only lines from the second
- file. The default new group format is same as the changed group
- format if it is specified; otherwise it is a format that outputs the
- line group as-is.
- .SP
- .IP "" 0
- \fB--changed-group-format=\fIformat\fB\fR
- .IP "" 2
- These line groups are hunks containing lines from both files. The
- default changed group format is the concatenation of the old and new
- group formats.
- .SP
- .IP "" 0
- \fB--unchanged-group-format=\fIformat\fB\fR
- .IP "" 2
- These line groups contain lines common to both files. The default
- unchanged group format is a format that outputs the line group as-is.
- .SP
- In a line group format, ordinary characters represent themselves;
- conversion specifications start with \fB%\fR and have one of the
- following forms.
- .SP
- .IP "" 0
- \fB%<\fR
- .IP "" 2
- stands for the lines from the first file, including the trailing newline.
- Each line is formatted according to the old line format (see node `Line formats\(aq in the CVS manual).
- .SP
- .IP "" 0
- \fB%>\fR
- .IP "" 2
- stands for the lines from the second file, including the trailing newline.
- Each line is formatted according to the new line format.
- .SP
- .IP "" 0
- \fB%=\fR
- .IP "" 2
- stands for the lines common to both files, including the trailing newline.
- Each line is formatted according to the unchanged line format.
- .SP
- .IP "" 0
- \fB%%\fR
- .IP "" 2
- stands for \fB%\fR.
- .SP
- .IP "" 0
- \fB%c\(aq\fIC\fB\(aq\fR
- .IP "" 2
- where \fIC\fR is a single character, stands for \fIC\fR.
- \fIC\fR may not be a backslash or an apostrophe.
- For example, \fB%c\(aq:\(aq\fR stands for a colon, even inside
- the then-part of an if-then-else format, which a colon would
- normally terminate.
- .SP
- .IP "" 0
- \fB%c\(aq\\\fIO\fB\(aq\fR
- .IP "" 2
- where \fIO\fR is a string of 1, 2, or 3 octal digits,
- stands for the character with octal code \fIO\fR.
- For example, \fB%c\(aq\\0\(aq\fR stands for a null character.
- .SP
- .IP "" 0
- \fB\fIF\fB\fIn\fB\fR
- .IP "" 2
- where \fIF\fR is a \fBprintf\fR conversion specification and \fIn\fR is one
- of the following letters, stands for \fIn\fR\(aqs value formatted with \fIF\fR.
- .SP
- .IP "" 2
- \fBe\fR
- .IP "" 4
- The line number of the line just before the group in the old file.
- .SP
- .IP "" 2
- \fBf\fR
- .IP "" 4
- The line number of the first line in the group in the old file;
- equals \fIe\fR + 1.
- .SP
- .IP "" 2
- \fBl\fR
- .IP "" 4
- The line number of the last line in the group in the old file.
- .SP
- .IP "" 2
- \fBm\fR
- .IP "" 4
- The line number of the line just after the group in the old file;
- equals \fIl\fR + 1.
- .SP
- .IP "" 2
- \fBn\fR
- .IP "" 4
- The number of lines in the group in the old file; equals \fIl\fR - \fIf\fR + 1.
- .SP
- .IP "" 2
- \fBE, F, L, M, N\fR
- .IP "" 4
- Likewise, for lines in the new file.
- .SP
- .SP
- The \fBprintf\fR conversion specification can be \fB%d\fR,
- \fB%o\fR, \fB%x\fR, or \fB%X\fR, specifying decimal, octal,
- lower case hexadecimal, or upper case hexadecimal output
- respectively. After the \fB%\fR the following options can appear in
- sequence: a \fB-\fR specifying left-justification; an integer
- specifying the minimum field width; and a period followed by an
- optional integer specifying the minimum number of digits.
- For example, \fB%5dN\fR prints the number of new lines in the group
- in a field of width 5 characters, using the \fBprintf\fR format \fB"%5d"\fR.
- .SP
- .IP "" 0
- \fB(\fIA\fB=\fIB\fB?\fIT\fB:\fIE\fB)\fR
- .IP "" 2
- If \fIA\fR equals \fIB\fR then \fIT\fR else \fIE\fR.
- \fIA\fR and \fIB\fR are each either a decimal constant
- or a single letter interpreted as above.
- This format spec is equivalent to \fIT\fR if
- \fIA\fR\(aqs value equals \fIB\fR\(aqs; otherwise it is equivalent to \fIE\fR.
- .SP
- For example, \fB%(N=0?no:%dN) line%(N=1?:s)\fR is equivalent to
- \fBno lines\fR if \fIN\fR (the number of lines in the group in the
- new file) is 0, to \fB1 line\fR if \fIN\fR is 1, and to \fB%dN lines\fR
- otherwise.
- .SP
- .SH "Line formats"
- .SP
- Line formats control how each line taken from an input file is
- output as part of a line group in if-then-else format.
- .SP
- For example, the following command outputs text with a one-column
- change indicator to the left of the text. The first column of output
- is \fB-\fR for deleted lines, \fB|\fR for added lines, and a space
- for unchanged lines. The formats contain newline characters where
- newlines are desired on output.
- .SP
- .PD 0
- .SP
- .IP "" 2
- cvs diff \\
- .IP "" 2
- --old-line-format=\(aq-%l
- .IP "" 2
- \(aq \\
- .IP "" 2
- --new-line-format=\(aq|%l
- .IP "" 2
- \(aq \\
- .IP "" 2
- --unchanged-line-format=\(aq %l
- .IP "" 2
- \(aq \\
- .IP "" 2
- myfile
- .PD
- .IP "" 0
- .SP
- To specify a line format, use one of the following options. You should
- quote \fIformat\fR, since it often contains shell metacharacters.
- .SP
- .IP "" 0
- \fB--old-line-format=\fIformat\fB\fR
- .IP "" 2
- formats lines just from the first file.
- .SP
- .IP "" 0
- \fB--new-line-format=\fIformat\fB\fR
- .IP "" 2
- formats lines just from the second file.
- .SP
- .IP "" 0
- \fB--unchanged-line-format=\fIformat\fB\fR
- .IP "" 2
- formats lines common to both files.
- .SP
- .IP "" 0
- \fB--line-format=\fIformat\fB\fR
- .IP "" 2
- formats all lines; in effect, it sets all three above options simultaneously.
- .SP
- In a line format, ordinary characters represent themselves;
- conversion specifications start with \fB%\fR and have one of the
- following forms.
- .SP
- .IP "" 0
- \fB%l\fR
- .IP "" 2
- stands for the contents of the line, not counting its trailing
- newline (if any). This format ignores whether the line is incomplete.
- .SP
- .IP "" 0
- \fB%L\fR
- .IP "" 2
- stands for the contents of the line, including its trailing newline
- (if any). If a line is incomplete, this format preserves its
- incompleteness.
- .SP
- .IP "" 0
- \fB%%\fR
- .IP "" 2
- stands for \fB%\fR.
- .SP
- .IP "" 0
- \fB%c\(aq\fIC\fB\(aq\fR
- .IP "" 2
- where \fIC\fR is a single character, stands for \fIC\fR.
- \fIC\fR may not be a backslash or an apostrophe.
- For example, \fB%c\(aq:\(aq\fR stands for a colon.
- .SP
- .IP "" 0
- \fB%c\(aq\\\fIO\fB\(aq\fR
- .IP "" 2
- where \fIO\fR is a string of 1, 2, or 3 octal digits,
- stands for the character with octal code \fIO\fR.
- For example, \fB%c\(aq\\0\(aq\fR stands for a null character.
- .SP
- .IP "" 0
- \fB\fIF\fBn\fR
- .IP "" 2
- where \fIF\fR is a \fBprintf\fR conversion specification,
- stands for the line number formatted with \fIF\fR.
- For example, \fB%.5dn\fR prints the line number using the
- \fBprintf\fR format \fB"%.5d"\fR. see node `Line group formats\(aq in the CVS manual, for
- more about printf conversion specifications.
- .SP
- .SP
- The default line format is \fB%l\fR followed by a newline character.
- .SP
- If the input contains tab characters and it is important that they line
- up on output, you should ensure that \fB%l\fR or \fB%L\fR in a line
- format is just after a tab stop (e.g. by preceding \fB%l\fR or
- \fB%L\fR with a tab character), or you should use the \fB-t\fR or
- \fB--expand-tabs\fR option.
- .SP
- Taken together, the line and line group formats let you specify many
- different formats. For example, the following command uses a format
- similar to \fBdiff\fR\(aqs normal format. You can tailor this command
- to get fine control over \fBdiff\fR\(aqs output.
- .SP
- .PD 0
- .SP
- .IP "" 2
- cvs diff \\
- .IP "" 2
- --old-line-format=\(aq< %l
- .IP "" 2
- \(aq \\
- .IP "" 2
- --new-line-format=\(aq> %l
- .IP "" 2
- \(aq \\
- .IP "" 2
- --old-group-format=\(aq%df%(f=l?:,%dl)d%dE
- .IP "" 2
- %<\(aq \\
- .IP "" 2
- --new-group-format=\(aq%dea%dF%(F=L?:,%dL)
- .IP "" 2
- %>\(aq \\
- .IP "" 2
- --changed-group-format=\(aq%df%(f=l?:,%dl)c%dF%(F=L?:,%dL)
- .IP "" 2
- %<\(em
- .IP "" 2
- %>\(aq \\
- .IP "" 2
- --unchanged-group-format=\(aq\(aq \\
- .IP "" 2
- myfile
- .PD
- .IP "" 0
- .SP
- .SH "diff examples"
- .SP
- The following line produces a Unidiff (\fB-u\fR flag)
- between revision 1.14 and 1.19 of
- \fBbackend.c\fR. Due to the \fB-kk\fR flag no
- keywords are substituted, so differences that only depend
- on keyword substitution are ignored.
- .SP
- .PD 0
- .SP
- .IP "" 2
- $ cvs diff -kk -u -r 1.14 -r 1.19 backend.c
- .PD
- .IP "" 0
- .SP
- Suppose the experimental branch EXPR1 was based on a
- set of files tagged RELEASE_1_0. To see what has
- happened on that branch, the following can be used:
- .SP
- .PD 0
- .SP
- .IP "" 2
- $ cvs diff -r RELEASE_1_0 -r EXPR1
- .PD
- .IP "" 0
- .SP
- A command like this can be used to produce a context
- diff between two releases:
- .SP
- .PD 0
- .SP
- .IP "" 2
- $ cvs diff -c -r RELEASE_1_0 -r RELEASE_1_1 > diffs
- .PD
- .IP "" 0
- .SP
- If you are maintaining ChangeLogs, a command like the following
- just before you commit your changes may help you write
- the ChangeLog entry. All local modifications that have
- not yet been committed will be printed.
- .SP
- .PD 0
- .SP
- .IP "" 2
- $ cvs diff -u | less
- .PD
- .IP "" 0
- .SP
- .SH "export"
- .SS "Export sources from CVS, similar to checkout"
- .IX "export (subcommand)"
- .SP
- .IP "\(bu" 2
- Synopsis: export [-flNnR] [-r rev|-D date] [-k subst] [-d dir] module\&...
- .IP "\(bu" 2
- Requires: repository.
- .IP "\(bu" 2
- Changes: current directory.
- .SP
- This command is a variant of \fBcheckout\fR; use it
- when you want a copy of the source for module without
- the \fBcvs\fR administrative directories. For example, you
- might use \fBexport\fR to prepare source for shipment
- off-site. This command requires that you specify a
- date or tag (with \fB-D\fR or \fB-r\fR), so that you
- can count on reproducing the source you ship to others
- (and thus it always prunes empty directories).
- .SP
- One often would like to use \fB-kv\fR with \fBcvs
- export\fR. This causes any keywords to be
- expanded such that an import done at some other site
- will not lose the keyword revision information. But be
- aware that doesn\(aqt handle an export containing binary
- files correctly. Also be aware that after having used
- \fB-kv\fR, one can no longer use the \fBident\fR
- command (which is part of the \fBrcs\fR suite\(emsee
- ident(1)) which looks for keyword strings. If
- you want to be able to use \fBident\fR you must not
- use \fB-kv\fR.
- .SP
- .SH "export options"
- .SP
- These standard options are supported by \fBexport\fR
- (see node `Common options\(aq in the CVS manual, for a complete description of
- them):
- .SP
- .IP "" 0
- \fB-D \fIdate\fB\fR
- .IP "" 2
- Use the most recent revision no later than \fIdate\fR.
- .SP
- .IP "" 0
- \fB-f\fR
- .IP "" 2
- If no matching revision is found, retrieve the most
- recent revision (instead of ignoring the file).
- .SP
- .IP "" 0
- \fB-l\fR
- .IP "" 2
- Local; run only in current working directory.
- .SP
- .IP "" 0
- \fB-n\fR
- .IP "" 2
- Do not run any checkout program.
- .SP
- .IP "" 0
- \fB-R\fR
- .IP "" 2
- Export directories recursively. This is on by default.
- .SP
- .IP "" 0
- \fB-r \fItag\fB\fR
- .IP "" 2
- Use revision \fItag\fR.
- .SP
- In addition, these options (that are common to
- \fBcheckout\fR and \fBexport\fR) are also supported:
- .SP
- .IP "" 0
- \fB-d \fIdir\fB\fR
- .IP "" 2
- Create a directory called \fIdir\fR for the working
- files, instead of using the module name.
- See `checkout options\(aq in the CVS manual for complete details on how
- \fBcvs\fR handles this flag.
- .SP
- .IP "" 0
- \fB-k \fIsubst\fB\fR
- .IP "" 2
- Set keyword expansion mode (see node `Substitution modes\(aq in the CVS manual).
- .SP
- .IP "" 0
- \fB-N\fR
- .IP "" 2
- Only useful together with \fB-d \fIdir\fB\fR.
- See `checkout options\(aq in the CVS manual for complete details on how
- \fBcvs\fR handles this flag.
- .SP
- .SH "history"
- .SS "Show status of files and users"
- .IX "history (subcommand)"
- .SP
- .IP "\(bu" 2
- Synopsis: history [-report] [-flags] [-options args] [files\&...]
- .IP "\(bu" 2
- Requires: the file \fB$CVSROOT/CVSROOT/history\fR
- .IP "\(bu" 2
- Changes: nothing.
- .SP
- \fBcvs\fR can keep a history file that tracks each use of the
- \fBcheckout\fR, \fBcommit\fR, \fBrtag\fR,
- \fBupdate\fR, and \fBrelease\fR commands. You can
- use \fBhistory\fR to display this information in
- various formats.
- .SP
- Logging must be enabled by creating the file
- \fB$CVSROOT/CVSROOT/history\fR.
- .SP
- \fB\fBhistory\fB uses \fB-f\fB, \fB-l\fB,
- \fB-n\fB, and \fB-p\fB in ways that conflict with the
- normal use inside \fBcvs\fB (see node `Common options\(aq in the CVS manual).\fR
- .SP
- .SH "history options"
- .SP
- Several options (shown above as \fB-report\fR) control what
- kind of report is generated:
- .SP
- .IP "" 0
- \fB-c\fR
- .IP "" 2
- Report on each time commit was used (i.e., each time
- the repository was modified).
- .SP
- .IP "" 0
- \fB-e\fR
- .IP "" 2
- Everything (all record types). Equivalent to
- specifying \fB-x\fR with all record types. Of course,
- \fB-e\fR will also include record types which are
- added in a future version of \fBcvs\fR; if you are
- writing a script which can only handle certain record
- types, you\(aqll want to specify \fB-x\fR.
- .SP
- .IP "" 0
- \fB-m \fImodule\fB\fR
- .IP "" 2
- Report on a particular module. (You can meaningfully
- use \fB-m\fR more than once on the command line.)
- .SP
- .IP "" 0
- \fB-o\fR
- .IP "" 2
- Report on checked-out modules. This is the default report type.
- .SP
- .IP "" 0
- \fB-T\fR
- .IP "" 2
- Report on all tags.
- .SP
- .IP "" 0
- \fB-x \fItype\fB\fR
- .IP "" 2
- Extract a particular set of record types \fItype\fR from the \fBcvs\fR
- history. The types are indicated by single letters,
- which you may specify in combination.
- .SP
- Certain commands have a single record type:
- .SP
- .IP "" 2
- \fBF\fR
- .IP "" 4
- release
- .IP "" 2
- \fBO\fR
- .IP "" 4
- checkout
- .IP "" 2
- \fBE\fR
- .IP "" 4
- export
- .IP "" 2
- \fBT\fR
- .IP "" 4
- rtag
- .SP
- One of five record types may result from an update:
- .SP
- .IP "" 2
- \fBC\fR
- .IP "" 4
- A merge was necessary but collisions were
- detected (requiring manual merging).
- .IP "" 2
- \fBG\fR
- .IP "" 4
- A merge was necessary and it succeeded.
- .IP "" 2
- \fBU\fR
- .IP "" 4
- A working file was copied from the repository.
- .IP "" 2
- \fBP\fR
- .IP "" 4
- A working file was patched to match the repository.
- .IP "" 2
- \fBW\fR
- .IP "" 4
- The working copy of a file was deleted during
- update (because it was gone from the repository).
- .SP
- One of three record types results from commit:
- .SP
- .IP "" 2
- \fBA\fR
- .IP "" 4
- A file was added for the first time.
- .IP "" 2
- \fBM\fR
- .IP "" 4
- A file was modified.
- .IP "" 2
- \fBR\fR
- .IP "" 4
- A file was removed.
- .SP
- The options shown as \fB-flags\fR constrain or expand
- the report without requiring option arguments:
- .SP
- .IP "" 0
- \fB-a\fR
- .IP "" 2
- Show data for all users (the default is to show data
- only for the user executing \fBhistory\fR).
- .SP
- .IP "" 0
- \fB-l\fR
- .IP "" 2
- Show last modification only.
- .SP
- .IP "" 0
- \fB-w\fR
- .IP "" 2
- Show only the records for modifications done from the
- same working directory where \fBhistory\fR is
- executing.
- .SP
- The options shown as \fB-options \fIargs\fB\fR constrain the report
- based on an argument:
- .SP
- .IP "" 0
- \fB-b \fIstr\fB\fR
- .IP "" 2
- Show data back to a record containing the string
- \fIstr\fR in either the module name, the file name, or
- the repository path.
- .SP
- .IP "" 0
- \fB-D \fIdate\fB\fR
- .IP "" 2
- Show data since \fIdate\fR. This is slightly different
- from the normal use of \fB-D \fIdate\fB\fR, which
- selects the newest revision older than \fIdate\fR.
- .SP
- .IP "" 0
- \fB-f \fIfile\fB\fR
- .IP "" 2
- Show data for a particular file
- (you can specify several \fB-f\fR options on the same command line).
- This is equivalent to specifying the file on the command line.
- .SP
- .IP "" 0
- \fB-n \fImodule\fB\fR
- .IP "" 2
- Show data for a particular module
- (you can specify several \fB-n\fR options on the same command line).
- .SP
- .IP "" 0
- \fB-p \fIrepository\fB\fR
- .IP "" 2
- Show data for a particular source repository (you
- can specify several \fB-p\fR options on the same command
- line).
- .SP
- .IP "" 0
- \fB-r \fIrev\fB\fR
- .IP "" 2
- Show records referring to revisions since the revision
- or tag named \fIrev\fR appears in individual \fBrcs\fR
- files. Each \fBrcs\fR file is searched for the revision or
- tag.
- .SP
- .IP "" 0
- \fB-t \fItag\fB\fR
- .IP "" 2
- Show records since tag \fItag\fR was last added to the
- history file. This differs from the \fB-r\fR flag
- above in that it reads only the history file, not the
- \fBrcs\fR files, and is much faster.
- .SP
- .IP "" 0
- \fB-u \fIname\fB\fR
- .IP "" 2
- Show records for user \fIname\fR.
- .SP
- .IP "" 0
- \fB-z \fItimezone\fB\fR
- .IP "" 2
- Show times in the selected records using the specified
- time zone instead of UTC.
- .SP
- .SH "import"
- .SS "Import sources into CVS, using vendor branches"
- .IX "import (subcommand)"
- .SP
- .IP "\(bu" 2
- Synopsis: import [-options] repository vendortag releasetag\&...
- .IP "\(bu" 2
- Requires: Repository, source distribution directory.
- .IP "\(bu" 2
- Changes: repository.
- .SP
- Use \fBimport\fR to incorporate an entire source
- distribution from an outside source (e.g., a source
- vendor) into your source repository directory. You can
- use this command both for initial creation of a
- repository, and for wholesale updates to the module
- from the outside source. See `Tracking sources\(aq in the CVS manual for
- a discussion on this subject.
- .SP
- The \fIrepository\fR argument gives a directory name
- (or a path to a directory) under the \fBcvs\fR root directory
- for repositories; if the directory did not exist,
- import creates it.
- .SP
- When you use import for updates to source that has been
- modified in your source repository (since a prior
- import), it will notify you of any files that conflict
- in the two branches of development; use \fBcheckout
- -j\fR to reconcile the differences, as import instructs
- you to do.
- .SP
- If \fBcvs\fR decides a file should be ignored
- (see node `cvsignore\(aq in the CVS manual), it does not import it and prints
- \fBI \fR followed by the filename (see node `import output\(aq in the CVS manual for a
- complete description of the output).
- .SP
- If the file \fB$CVSROOT/CVSROOT/cvswrappers\fR exists,
- any file whose names match the specifications in that
- file will be treated as packages and the appropriate
- filtering will be performed on the file/directory
- before being imported. See `Wrappers\(aq in the CVS manual.
- .SP
- The outside source is saved in a first-level
- branch, by default 1.1.1. Updates are leaves of this
- branch; for example, files from the first imported
- collection of source will be revision 1.1.1.1, then
- files from the first imported update will be revision
- 1.1.1.2, and so on.
- .SP
- At least three arguments are required.
- \fIrepository\fR is needed to identify the collection
- of source. \fIvendortag\fR is a tag for the entire
- branch (e.g., for 1.1.1). You must also specify at
- least one \fIreleasetag\fR to uniquely identify the files at
- the leaves created each time you execute \fBimport\fR. The
- \fIreleasetag\fR should be new, not previously existing in the
- repository file, and uniquely identify the imported release,
- .SP
- Note that \fBimport\fR does \fInot\fR change the
- directory in which you invoke it. In particular, it
- does not set up that directory as a \fBcvs\fR working
- directory; if you want to work with the sources import
- them first and then check them out into a different
- directory (see node `Getting the source\(aq in the CVS manual).
- .SP
- .SH "import options"
- .SP
- This standard option is supported by \fBimport\fR
- (see node `Common options\(aq in the CVS manual for a complete description):
- .SP
- .IP "" 0
- \fB-m \fImessage\fB\fR
- .IP "" 2
- Use \fImessage\fR as log information, instead of
- invoking an editor.
- .SP
- There are the following additional special options.
- .SP
- .IP "" 0
- \fB-b \fIbranch\fB\fR
- .IP "" 2
- See `Multiple vendor branches\(aq in the CVS manual.
- .SP
- .IP "" 0
- \fB-k \fIsubst\fB\fR
- .IP "" 2
- Indicate the keyword expansion mode desired. This
- setting will apply to all files created during the
- import, but not to any files that previously existed in
- the repository. See `Substitution modes\(aq in the CVS manual for a
- list of valid \fB-k\fR settings.
- .SP
- .IP "" 0
- \fB-I \fIname\fB\fR
- .IP "" 2
- Specify file names that should be ignored during
- import. You can use this option repeatedly. To avoid
- ignoring any files at all (even those ignored by
- default), specify \`-I !\(aq.
- .SP
- \fIname\fR can be a file name pattern of the same type
- that you can specify in the \fB.cvsignore\fR file.
- See `cvsignore\(aq in the CVS manual.
- .SP
- .IP "" 0
- \fB-W \fIspec\fB\fR
- .IP "" 2
- Specify file names that should be filtered during
- import. You can use this option repeatedly.
- .SP
- \fIspec\fR can be a file name pattern of the same type
- that you can specify in the \fB.cvswrappers\fR
- file. see node `Wrappers\(aq in the CVS manual.
- .SP
- .SH "import output"
- .SP
- \fBimport\fR keeps you informed of its progress by printing a line
- for each file, preceded by one character indicating the status of the file:
- .SP
- .IP "" 0
- \fBU \fIfile\fB\fR
- .IP "" 2
- The file already exists in the repository and has not been locally
- modified; a new revision has been created (if necessary).
- .SP
- .IP "" 0
- \fBN \fIfile\fB\fR
- .IP "" 2
- The file is a new file which has been added to the repository.
- .SP
- .IP "" 0
- \fBC \fIfile\fB\fR
- .IP "" 2
- The file already exists in the repository but has been locally modified;
- you will have to merge the changes.
- .SP
- .IP "" 0
- \fBI \fIfile\fB\fR
- .IP "" 2
- The file is being ignored (see node `cvsignore\(aq in the CVS manual).
- .SP
- .IX "Symbolic link, importing"
- .IX "Link, symbolic, importing"
- .IP "" 0
- \fBL \fIfile\fB\fR
- .IP "" 2
- The file is a symbolic link; \fBcvs import\fR ignores symbolic links.
- People periodically suggest that this behavior should
- be changed, but if there is a consensus on what it
- should be changed to, it doesn\(aqt seem to be apparent.
- (Various options in the \fBmodules\fR file can be used
- to recreate symbolic links on checkout, update, etc.;
- see node `modules\(aq in the CVS manual.)
- .SP
- .SH "import examples"
- .SP
- See `Tracking sources\(aq in the CVS manual, and `From files\(aq in the CVS manual.
- .SP
- .SH "log"
- .SS "Print out log information for files"
- .IX "log (subcommand)"
- .SP
- .IP "\(bu" 2
- Synopsis: log [options] [files\&...]
- .IP "\(bu" 2
- Requires: repository, working directory.
- .IP "\(bu" 2
- Changes: nothing.
- .SP
- Display log information for files. \fBlog\fR used to
- call the \fBrcs\fR utility \fBrlog\fR. Although this
- is no longer true in the current sources, this history
- determines the format of the output and the options,
- which are not quite in the style of the other \fBcvs\fR
- commands.
- .SP
- .IX "Timezone, in output"
- .IX "Zone, time, in output"
- The output includes the location of the \fBrcs\fR file,
- the \fIhead\fR revision (the latest revision on the
- trunk), all symbolic names (tags) and some other
- things. For each revision, the revision number, the
- author, the number of lines added/deleted and the log
- message are printed. All times are displayed in
- Coordinated Universal Time (UTC). (Other parts of
- \fBcvs\fR print times in the local timezone).
- .SP
- \fB\fBlog\fB uses \fB-R\fB in a way that conflicts
- with the normal use inside \fBcvs\fB (see node `Common options\(aq in the CVS manual).\fR
- .SP
- .SH "log options"
- .SP
- By default, \fBlog\fR prints all information that is
- available. All other options restrict the output. Note that the revision
- selection options (\fB-b\fR, \fB-d\fR, \fB-r\fR, \fB-s\fR, and \fB-w\fR)
- have no
- effect, other than possibly causing a search for files in Attic directories,
- when used in conjunction with the options that restrict the output to only
- \fBlog\fR header fields (\fB-h\fR, \fB-R\fR, and \fB-t\fR)
- unless the \fB-S\fR option is also specified.
- .SP
- .IP "" 0
- \fB-b\fR
- .IP "" 2
- Print information about the revisions on the default
- branch, normally the highest branch on the trunk.
- .SP
- .IP "" 0
- \fB-d \fIdates\fB\fR
- .IP "" 2
- Print information about revisions with a checkin
- date/time in the range given by the
- semicolon-separated list of dates. The date formats
- accepted are those accepted by the \fB-D\fR option to
- many other \fBcvs\fR commands (see node `Common options\(aq in the CVS manual).
- Dates can be combined into ranges as follows:
- .SP
- .IP "" 2
- \fB\fId1\fB<\fId2\fB\fR
- .IP "" 4
- .IP "" 2
- \fB\fId2\fB>\fId1\fB\fR
- .IP "" 4
- Select the revisions that were deposited between
- \fId1\fR and \fId2\fR.
- .SP
- .IP "" 2
- \fB<\fId\fB\fR
- .IP "" 4
- .IP "" 2
- \fB\fId\fB>\fR
- .IP "" 4
- Select all revisions dated \fId\fR or earlier.
- .SP
- .IP "" 2
- \fB\fId\fB<\fR
- .IP "" 4
- .IP "" 2
- \fB>\fId\fB\fR
- .IP "" 4
- Select all revisions dated \fId\fR or later.
- .SP
- .IP "" 2
- \fB\fId\fB\fR
- .IP "" 4
- Select the single, latest revision dated \fId\fR or
- earlier.
- .SP
- The \fB>\fR or \fB<\fR characters may be followed by
- \fB=\fR to indicate an inclusive range rather than an
- exclusive one.
- .SP
- Note that the separator is a semicolon (;).
- .SP
- .IP "" 0
- \fB-h\fR
- .IP "" 2
- Print only the name of the \fBrcs\fR file, name
- of the file in the working directory, head,
- default branch, access list, locks, symbolic names, and
- suffix.
- .SP
- .IP "" 0
- \fB-l\fR
- .IP "" 2
- Local; run only in current working directory. (Default
- is to run recursively).
- .SP
- .IP "" 0
- \fB-N\fR
- .IP "" 2
- Do not print the list of tags for this file. This
- option can be very useful when your site uses a lot of
- tags, so rather than "more"\(aqing over 3 pages of tag
- information, the log information is presented without
- tags at all.
- .SP
- .IP "" 0
- \fB-n\fR
- .IP "" 2
- Print the list of tags for this file. This option can
- be very useful when your \fB.cvsrc\fR file has a
- \fBlog -N\fR entry as a way to get a full list of all
- of the tags.
- .SP
- .IP "" 0
- \fB-R\fR
- .IP "" 2
- Print only the name of the \fBrcs\fR file.
- .SP
- .IP "" 0
- \fB-r\fIrevisions\fB\fR
- .IP "" 2
- Print information about revisions given in the
- comma-separated list \fIrevisions\fR of revisions and
- ranges. The following table explains the available
- range formats:
- .SP
- .IP "" 2
- \fB\fIrev1\fB:\fIrev2\fB\fR
- .IP "" 4
- Revisions \fIrev1\fR to \fIrev2\fR (which must be on
- the same branch).
- .SP
- .IP "" 2
- \fB\fIrev1\fB::\fIrev2\fB\fR
- .IP "" 4
- The same, but excluding \fIrev1\fR.
- .SP
- .IP "" 2
- \fB:\fIrev\fB\fR
- .IP "" 4
- .IP "" 2
- \fB::\fIrev\fB\fR
- .IP "" 4
- Revisions from the beginning of the branch up to
- and including \fIrev\fR.
- .SP
- .IP "" 2
- \fB\fIrev\fB:\fR
- .IP "" 4
- Revisions starting with \fIrev\fR to the end of the
- branch containing \fIrev\fR.
- .SP
- .IP "" 2
- \fB\fIrev\fB::\fR
- .IP "" 4
- Revisions starting just after \fIrev\fR to the end of the
- branch containing \fIrev\fR.
- .SP
- .IP "" 2
- \fB\fIbranch\fB\fR
- .IP "" 4
- An argument that is a branch means all revisions on
- that branch.
- .SP
- .IP "" 2
- \fB\fIbranch1\fB:\fIbranch2\fB\fR
- .IP "" 4
- .IP "" 2
- \fB\fIbranch1\fB::\fIbranch2\fB\fR
- .IP "" 4
- A range of branches means all revisions
- on the branches in that range.
- .SP
- .IP "" 2
- \fB\fIbranch\fB.\fR
- .IP "" 4
- The latest revision in \fIbranch\fR.
- .SP
- A bare \fB-r\fR with no revisions means the latest
- revision on the default branch, normally the trunk.
- There can be no space between the \fB-r\fR option and
- its argument.
- .SP
- .IP "" 0
- \fB-S\fR
- .IP "" 2
- Suppress the header if no revisions are selected.
- .SP
- .IP "" 0
- \fB-s \fIstates\fB\fR
- .IP "" 2
- Print information about revisions whose state
- attributes match one of the states given in the
- comma-separated list \fIstates\fR. Individual states may
- be any text string, though \fBcvs\fR commonly only uses two
- states, \fBExp\fR and \fBdead\fR. See `admin options\(aq in the CVS manual
- for more information.
- .SP
- .IP "" 0
- \fB-t\fR
- .IP "" 2
- Print the same as \fB-h\fR, plus the descriptive text.
- .SP
- .IP "" 0
- \fB-w\fIlogins\fB\fR
- .IP "" 2
- Print information about revisions checked in by users
- with login names appearing in the comma-separated list
- \fIlogins\fR. If \fIlogins\fR is omitted, the user\(aqs
- login is assumed. There can be no space between the
- \fB-w\fR option and its argument.
- .SP
- \fBlog\fR prints the intersection of the revisions
- selected with the options \fB-d\fR, \fB-s\fR, and
- \fB-w\fR, intersected with the union of the revisions
- selected by \fB-b\fR and \fB-r\fR.
- .SP
- .SH "log examples"
- .SP
- Contributed examples are gratefully accepted.
- .SP
- .SH "rdiff"
- .SS "\(aqpatch\(aq format diffs between releases"
- .IX "rdiff (subcommand)"
- .SP
- .IP "\(bu" 2
- rdiff [-flags] [-V vn] [-r t|-D d [-r t2|-D d2]] modules\&...
- .IP "\(bu" 2
- Requires: repository.
- .IP "\(bu" 2
- Changes: nothing.
- .IP "\(bu" 2
- Synonym: patch
- .SP
- Builds a Larry Wall format patch(1) file between two
- releases, that can be fed directly into the \fBpatch\fR
- program to bring an old release up-to-date with the new
- release. (This is one of the few \fBcvs\fR commands that
- operates directly from the repository, and doesn\(aqt
- require a prior checkout.) The diff output is sent to
- the standard output device.
- .SP
- You can specify (using the standard \fB-r\fR and
- \fB-D\fR options) any combination of one or two
- revisions or dates. If only one revision or date is
- specified, the patch file reflects differences between
- that revision or date and the current head revisions in
- the \fBrcs\fR file.
- .SP
- Note that if the software release affected is contained
- in more than one directory, then it may be necessary to
- specify the \fB-p\fR option to the \fBpatch\fR command when
- patching the old sources, so that \fBpatch\fR is able to find
- the files that are located in other directories.
- .SP
- .SH "rdiff options"
- .SP
- These standard options are supported by \fBrdiff\fR
- (see node `Common options\(aq in the CVS manual for a complete description of
- them):
- .SP
- .IP "" 0
- \fB-D \fIdate\fB\fR
- .IP "" 2
- Use the most recent revision no later than \fIdate\fR.
- .SP
- .IP "" 0
- \fB-f\fR
- .IP "" 2
- If no matching revision is found, retrieve the most
- recent revision (instead of ignoring the file).
- .SP
- .IP "" 0
- \fB-k \fIkflag\fB\fR
- .IP "" 2
- Process keywords according to \fIkflag\fR. See
- `Keyword substitution\(aq in the CVS manual.
- .SP
- .IP "" 0
- \fB-l\fR
- .IP "" 2
- Local; don\(aqt descend subdirectories.
- .SP
- .IP "" 0
- \fB-R\fR
- .IP "" 2
- Examine directories recursively. This option is on by default.
- .SP
- .IP "" 0
- \fB-r \fItag\fB\fR
- .IP "" 2
- Use revision \fItag\fR.
- .SP
- In addition to the above, these options are available:
- .SP
- .IP "" 0
- \fB-c\fR
- .IP "" 2
- Use the context diff format. This is the default format.
- .SP
- .IP "" 0
- \fB-s\fR
- .IP "" 2
- Create a summary change report instead of a patch. The
- summary includes information about files that were
- changed or added between the releases. It is sent to
- the standard output device. This is useful for finding
- out, for example, which files have changed between two
- dates or revisions.
- .SP
- .IP "" 0
- \fB-t\fR
- .IP "" 2
- A diff of the top two revisions is sent to the standard
- output device. This is most useful for seeing what the
- last change to a file was.
- .SP
- .IP "" 0
- \fB-u\fR
- .IP "" 2
- Use the unidiff format for the context diffs.
- Remember that old versions
- of the \fBpatch\fR program can\(aqt handle the unidiff
- format, so if you plan to post this patch to the net
- you should probably not use \fB-u\fR.
- .SP
- .IP "" 0
- \fB-V \fIvn\fB\fR
- .IP "" 2
- Expand keywords according to the rules current in
- \fBrcs\fR version \fIvn\fR (the expansion format changed with
- \fBrcs\fR version 5). Note that this option is no
- longer accepted. \fBcvs\fR will always expand keywords the
- way that \fBrcs\fR version 5 does.
- .SP
- .SH "rdiff examples"
- .SP
- Suppose you receive mail from \fRfoo@example.net\fR asking for an
- update from release 1.2 to 1.4 of the tc compiler. You
- have no such patches on hand, but with \fBcvs\fR that can
- easily be fixed with a command such as this:
- .SP
- .PD 0
- .SP
- .IP "" 2
- $ cvs rdiff -c -r FOO1_2 -r FOO1_4 tc | \\
- .IP "" 2
- > Mail -s \(aqThe patches you asked for\(aq foo@example.net
- .PD
- .IP "" 0
- .SP
- Suppose you have made release 1.3, and forked a branch
- called \fBR_1_3fix\fR for bug fixes. \fBR_1_3_1\fR
- corresponds to release 1.3.1, which was made some time
- ago. Now, you want to see how much development has been
- done on the branch. This command can be used:
- .SP
- .PD 0
- .SP
- .IP "" 2
- $ cvs patch -s -r R_1_3_1 -r R_1_3fix module-name
- .IP "" 2
- cvs rdiff: Diffing module-name
- .IP "" 2
- File ChangeLog,v changed from revision 1.52.2.5 to 1.52.2.6
- .IP "" 2
- File foo.c,v changed from revision 1.52.2.3 to 1.52.2.4
- .IP "" 2
- File bar.h,v changed from revision 1.29.2.1 to 1.2
- .PD
- .IP "" 0
- .SP
- .SH "release"
- .SS "Indicate that a Module is no longer in use"
- .IX "release (subcommand)"
- .SP
- .IP "\(bu" 2
- release [-d] directories\&...
- .IP "\(bu" 2
- Requires: Working directory.
- .IP "\(bu" 2
- Changes: Working directory, history log.
- .SP
- This command is meant to safely cancel the effect of
- \fBcvs checkout\fR. Since \fBcvs\fR doesn\(aqt lock files, it
- isn\(aqt strictly necessary to use this command. You can
- always simply delete your working directory, if you
- like; but you risk losing changes you may have
- forgotten, and you leave no trace in the \fBcvs\fR history
- file (see node `history file\(aq in the CVS manual) that you\(aqve abandoned your
- checkout.
- .SP
- Use \fBcvs release\fR to avoid these problems. This
- command checks that no uncommitted changes are
- present; that you are executing it from immediately
- above a \fBcvs\fR working directory; and that the repository
- recorded for your files is the same as the repository
- defined in the module database.
- .SP
- If all these conditions are true, \fBcvs release\fR
- leaves a record of its execution (attesting to your
- intentionally abandoning your checkout) in the \fBcvs\fR
- history log.
- .SP
- .SH "release options"
- .SP
- The \fBrelease\fR command supports one command option:
- .SP
- .IP "" 0
- \fB-d\fR
- .IP "" 2
- Delete your working copy of the file if the release
- succeeds. If this flag is not given your files will
- remain in your working directory.
- .SP
- \fBWARNING: The \fBrelease\fB command deletes
- all directories and files recursively. This
- has the very serious side-effect that any directory
- created inside checked-out sources, and not added to
- the repository (using the \fBadd\fB command;
- see node `Adding files\(aq in the CVS manual) will be silently deleted\(emeven
- if it is non-empty!\fR
- .SP
- .SH "release output"
- .SP
- Before \fBrelease\fR releases your sources it will
- print a one-line message for any file that is not
- up-to-date.
- .SP
- .IP "" 0
- \fBU \fIfile\fB\fR
- .IP "" 2
- .IP "" 0
- \fBP \fIfile\fB\fR
- .IP "" 2
- There exists a newer revision of this file in the
- repository, and you have not modified your local copy
- of the file (\fBU\fR and \fBP\fR mean the same thing).
- .SP
- .IP "" 0
- \fBA \fIfile\fB\fR
- .IP "" 2
- The file has been added to your private copy of the
- sources, but has not yet been committed to the
- repository. If you delete your copy of the sources
- this file will be lost.
- .SP
- .IP "" 0
- \fBR \fIfile\fB\fR
- .IP "" 2
- The file has been removed from your private copy of the
- sources, but has not yet been removed from the
- repository, since you have not yet committed the
- removal. See `commit\(aq in the CVS manual.
- .SP
- .IP "" 0
- \fBM \fIfile\fB\fR
- .IP "" 2
- The file is modified in your working directory. There
- might also be a newer revision inside the repository.
- .SP
- .IP "" 0
- \fB? \fIfile\fB\fR
- .IP "" 2
- \fIfile\fR is in your working directory, but does not
- correspond to anything in the source repository, and is
- not in the list of files for \fBcvs\fR to ignore (see the
- description of the \fB-I\fR option, and
- see node `cvsignore\(aq in the CVS manual). If you remove your working
- sources, this file will be lost.
- .SP
- .SH "release examples"
- .SP
- Release the \fBtc\fR directory, and delete your local working copy
- of the files.
- .SP
- .PD 0
- .SP
- .IP "" 2
- $ cd \&.. # \fRYou must stand immediately above the\fR
- .IP "" 2
- # \fRsources when you issue \fBcvs release\fR.\fR
- .IP "" 2
- $ cvs release -d tc
- .IP "" 2
- You have [0] altered files in this repository.
- .IP "" 2
- Are you sure you want to release (and delete) directory \`tc\(aq: y
- .IP "" 2
- $
- .PD
- .IP "" 0
- .SP
- .SH "remove"
- .SS "Remove files from active use"
- .IX "remove (subcommand)"
- .SP
- .IP "\(bu" 2
- Synopsis: remove [-flR] [files...]
- .IP "\(bu" 2
- Requires: repository, working directory.
- .IP "\(bu" 2
- Changes: working directory.
- .SP
- The \fBremove\fR command is used to remove unwanted
- files from active use. The user normally deletes the
- files from the working directory prior to invocation
- of the \fBremove\fR command. Only the working
- directory is updated. Changes to the repository are
- not made until the \fBcommit\fR command is run.
- .SP
- The \fBremove\fR command does not delete files from
- from the repository. \fBcvs\fR keeps all historical
- data in the repository so that it is possible to
- reconstruct previous states of the projects under
- revision control.
- .SP
- To undo \fBcvs\fR \fBremove\fR or to resurrect files
- that were previously removed, see node `add\(aq in the CVS manual.
- .SP
- .SH "remove options"
- .SP
- These standard options are supported by \fBremove\fR
- (see node `Common options\(aq in the CVS manual for a complete description of
- them):
- .SP
- .IP "" 0
- \fB-l\fR
- .IP "" 2
- Local; run only in current working directory. See `Recursive behavior\(aq in the CVS manual.
- .SP
- .IP "" 0
- \fB-R\fR
- .IP "" 2
- Process directories recursively. See `Recursive behavior\(aq in the CVS manual.
- .SP
- .SP
- In addition, these options are also supported:
- .SP
- .IP "" 0
- \fB-f\fR
- .IP "" 2
- Note that this is not the standard behavior of
- the \fB-f\fR option as defined in `Common options\(aq in the CVS manual.
- .SP
- Delete files before removing them.
- .SP
- Entire directory hierarchies are easily removed
- using \fB-f\fR, but take note that it is not as
- easy to resurrect directory hierarchies as it is
- to remove them.
- .SP
- .SP
- .SH "remove examples"
- .SP
- .SS "Removing a file"
- .SP
- .PD 0
- .SP
- .IP "" 2
- $ cvs remove remove.me
- .IP "" 2
- cvs remove: file \`remove.me\(aq still in working directory
- .IP "" 2
- cvs remove: 1 file exists; remove it first
- .IP "" 2
- $ rm -f remove.me
- .IP "" 2
- $ cvs remove remove.me
- .IP "" 2
- cvs remove: scheduling \`remove.me\(aq for removal
- .IP "" 2
- cvs remove: use \(aqcvs commit\(aq to remove this file permanently
- .SP
- .IP "" 2
- $ ls remove.it
- .IP "" 2
- remove.it
- .IP "" 2
- $ cvs remove -f remove.it
- .IP "" 2
- cvs remove: scheduling \`remove.it\(aq for removal
- .IP "" 2
- cvs remove: use \(aqcvs commit\(aq to remove this file permanently
- .PD
- .IP "" 0
- .SP
- .SS "Removing entire directories"
- .SP
- .PD 0
- .IP "" 2
- $ tree -d a
- .IP "" 2
- a
- .IP "" 2
- |-- CVS
- .IP "" 2
- \`-- b
- .IP "" 2
- \`-- CVS
- .SP
- .IP "" 2
- 3 directories
- .IP "" 2
- $ cvs remove -f a
- .IP "" 2
- cvs remove: Removing a
- .IP "" 2
- cvs remove: Removing a/b
- .IP "" 2
- cvs remove: scheduling \`a/b/c\(aq for removal
- .IP "" 2
- cvs remove: use \(aqcvs commit\(aq to remove this file permanently
- .PD
- .IP "" 0
- .SP
- .SH "update"
- .SS "Bring work tree in sync with repository"
- .IX "update (subcommand)"
- .SP
- .IP "\(bu" 2
- update [-ACdflPpR] [-I name] [-j rev [-j rev]] [-k kflag] [-r tag|-D date] [-W spec] files\&...
- .IP "\(bu" 2
- Requires: repository, working directory.
- .IP "\(bu" 2
- Changes: working directory.
- .SP
- After you\(aqve run checkout to create your private copy
- of source from the common repository, other developers
- will continue changing the central source. From time
- to time, when it is convenient in your development
- process, you can use the \fBupdate\fR command from
- within your working directory to reconcile your work
- with any revisions applied to the source repository
- since your last checkout or update.
- .SP
- .SH "update options"
- .SP
- These standard options are available with \fBupdate\fR
- (see node `Common options\(aq in the CVS manual for a complete description of
- them):
- .SP
- .IP "" 0
- \fB-D date\fR
- .IP "" 2
- Use the most recent revision no later than \fIdate\fR.
- This option is sticky, and implies \fB-P\fR.
- See `Sticky tags\(aq in the CVS manual for more information on sticky tags/dates.
- .SP
- .IP "" 0
- \fB-f\fR
- .IP "" 2
- Only useful with the \fB-D \fIdate\fB\fR or \fB-r
- \fItag\fB\fR flags. If no matching revision is found,
- retrieve the most recent revision (instead of ignoring
- the file).
- .SP
- .IP "" 0
- \fB-k \fIkflag\fB\fR
- .IP "" 2
- Process keywords according to \fIkflag\fR. See
- `Keyword substitution\(aq in the CVS manual.
- This option is sticky; future updates of
- this file in this working directory will use the same
- \fIkflag\fR. The \fBstatus\fR command can be viewed
- to see the sticky options. See `Invoking CVS\(aq in the CVS manual for
- more information on the \fBstatus\fR command.
- .SP
- .IP "" 0
- \fB-l\fR
- .IP "" 2
- Local; run only in current working directory. See `Recursive behavior\(aq in the CVS manual.
- .SP
- .IP "" 0
- \fB-P\fR
- .IP "" 2
- Prune empty directories. See `Moving directories\(aq in the CVS manual.
- .SP
- .IP "" 0
- \fB-p\fR
- .IP "" 2
- Pipe files to the standard output.
- .SP
- .IP "" 0
- \fB-R\fR
- .IP "" 2
- Update directories recursively (default). See `Recursive
- behavior\(aq in the CVS manual.
- .SP
- .IP "" 0
- \fB-r rev\fR
- .IP "" 2
- Retrieve revision/tag \fIrev\fR. This option is sticky,
- and implies \fB-P\fR.
- See `Sticky tags\(aq in the CVS manual, for more information on sticky tags/dates.
- .SP
- These special options are also available with
- \fBupdate\fR.
- .SP
- .IP "" 0
- \fB-A\fR
- .IP "" 2
- Reset any sticky tags, dates, or \fB-k\fR options.
- Does not reset sticky \fB-k\fR options on modified files.
- See `Sticky tags\(aq in the CVS manual for more information on sticky tags/dates.
- .SP
- .IP "" 0
- \fB-C\fR
- .IP "" 2
- Overwrite locally modified files with clean copies from
- the repository (the modified file is saved in
- \fB.#\fIfile\fB.\fIrevision\fB\fR, however).
- .SP
- .IP "" 0
- \fB-d\fR
- .IP "" 2
- Create any directories that exist in the repository if
- they\(aqre missing from the working directory. Normally,
- \fBupdate\fR acts only on directories and files that
- were already enrolled in your working directory.
- .SP
- This is useful for updating directories that were
- created in the repository since the initial checkout;
- but it has an unfortunate side effect. If you
- deliberately avoided certain directories in the
- repository when you created your working directory
- (either through use of a module name or by listing
- explicitly the files and directories you wanted on the
- command line), then updating with \fB-d\fR will create
- those directories, which may not be what you want.
- .SP
- .IP "" 0
- \fB-I \fIname\fB\fR
- .IP "" 2
- Ignore files whose names match \fIname\fR (in your
- working directory) during the update. You can specify
- \fB-I\fR more than once on the command line to specify
- several files to ignore. Use \fB-I !\fR to avoid
- ignoring any files at all. See `cvsignore\(aq in the CVS manual for other
- ways to make \fBcvs\fR ignore some files.
- .SP
- .IP "" 0
- \fB-W\fIspec\fB\fR
- .IP "" 2
- Specify file names that should be filtered during
- update. You can use this option repeatedly.
- .SP
- \fIspec\fR can be a file name pattern of the same type
- that you can specify in the \fB.cvswrappers\fR
- file. See `Wrappers\(aq in the CVS manual.
- .SP
- .IP "" 0
- \fB-j\fIrevision\fB\fR
- .IP "" 2
- With two \fB-j\fR options, merge changes from the
- revision specified with the first \fB-j\fR option to
- the revision specified with the second \fBj\fR option,
- into the working directory.
- .SP
- With one \fB-j\fR option, merge changes from the
- ancestor revision to the revision specified with the
- \fB-j\fR option, into the working directory. The
- ancestor revision is the common ancestor of the
- revision which the working directory is based on, and
- the revision specified in the \fB-j\fR option.
- .SP
- Note that using a single \fB-j \fItagname\fB\fR option rather than
- \fB-j \fIbranchname\fB\fR to merge changes from a branch will
- often not remove files which were removed on the branch.
- See `Merging adds and removals\(aq in the CVS manual for more information.
- .SP
- In addition, each \fB-j\fR option can contain an optional
- date specification which, when used with branches, can
- limit the chosen revision to one within a specific
- date. An optional date is specified by adding a colon
- (:) to the tag:
- \fB-j\fISymbolic_Tag\fB:\fIDate_Specifier\fB\fR.
- .SP
- See `Branching and merging\(aq in the CVS manual.
- .SP
- .SP
- .SH "update output"
- .SP
- \fBupdate\fR and \fBcheckout\fR keep you informed of
- their progress by printing a line for each file, preceded
- by one character indicating the status of the file:
- .SP
- .IP "" 0
- \fBU \fIfile\fB\fR
- .IP "" 2
- The file was brought up to date with respect to the
- repository. This is done for any file that exists in
- the repository but not in your working directory, and for files
- that you haven\(aqt changed but are not the most recent
- versions available in the repository.
- .SP
- .IP "" 0
- \fBP \fIfile\fB\fR
- .IP "" 2
- Like \fBU\fR, but the \fBcvs\fR server sends a patch instead of an entire
- file. This accomplishes the same thing as \fBU\fR using less bandwidth.
- .SP
- .IP "" 0
- \fBA \fIfile\fB\fR
- .IP "" 2
- The file has been added to your private copy of the
- sources, and will be added to the source repository
- when you run \fBcommit\fR on the file. This is a
- reminder to you that the file needs to be committed.
- .SP
- .IP "" 0
- \fBR \fIfile\fB\fR
- .IP "" 2
- The file has been removed from your private copy of the
- sources, and will be removed from the source repository
- when you run \fBcommit\fR on the file. This is a
- reminder to you that the file needs to be committed.
- .SP
- .IP "" 0
- \fBM \fIfile\fB\fR
- .IP "" 2
- The file is modified in your working directory.
- .SP
- \fBM\fR can indicate one of two states for a file
- you\(aqre working on: either there were no modifications
- to the same file in the repository, so that your file
- remains as you last saw it; or there were modifications
- in the repository as well as in your copy, but they
- were merged successfully, without conflict, in your
- working directory.
- .SP
- \fBcvs\fR will print some messages if it merges your work,
- and a backup copy of your working file (as it looked
- before you ran \fBupdate\fR) will be made. The exact
- name of that file is printed while \fBupdate\fR runs.
- .SP
- .IP "" 0
- \fBC \fIfile\fB\fR
- .IP "" 2
- .IX "\&.# files"
- .IX "__ files (VMS)"
- A conflict was detected while trying to merge your
- changes to \fIfile\fR with changes from the source
- repository. \fIfile\fR (the copy in your working
- directory) is now the result of attempting to merge
- the two revisions; an unmodified copy of your file
- is also in your working directory, with the name
- \fB.#\fIfile\fB.\fIrevision\fB\fR where \fIrevision\fR
- is the revision that your modified file started
- from. Resolve the conflict as described in
- `Conflicts example\(aq in the CVS manual.
- (Note that some systems automatically purge
- files that begin with \fB.#\fR if they have not been
- accessed for a few days. If you intend to keep a copy
- of your original file, it is a very good idea to rename
- it.) Under \fBvms\fR, the file name starts with
- \fB__\fR rather than \fB.#\fR.
- .SP
- .IP "" 0
- \fB? \fIfile\fB\fR
- .IP "" 2
- \fIfile\fR is in your working directory, but does not
- correspond to anything in the source repository, and is
- not in the list of files for \fBcvs\fR to ignore (see the
- description of the \fB-I\fR option, and
- see node `cvsignore\(aq in the CVS manual).
- .SH "AUTHORS"
- .TP
- Dick Grune
- Original author of the
- .B cvs
- shell script version posted to
- .B comp.sources.unix
- in the volume6 release of December, 1986.
- Credited with much of the
- .B cvs
- conflict resolution algorithms.
- .TP
- Brian Berliner
- Coder and designer of the
- .B cvs
- program itself in April, 1989, based on the original work done by Dick.
- .TP
- Jeff Polk
- Helped Brian with the design of the
- .B cvs
- module and vendor branch support and author of the
- .BR checkin ( 1 )
- shell script (the ancestor of \fBcvs import\fP).
- .TP
- Larry Jones, Derek R. Price, and Mark D. Baushke
- Have helped maintain
- .B cvs
- for many years.
- .TP
- And many others too numerous to mention here.
- .SH "SEE ALSO"
- The most comprehensive manual for CVS is
- Version Management with CVS by Per Cederqvist et al. Depending on
- your system, you may be able to get it with the
- .B info CVS
- command or it may be available as cvs.pdf (Portable Document Format),
- cvs.ps (PostScript), cvs.texinfo (Texinfo source), or cvs.html.
- .SP
- For CVS updates, more information on documentation, software related
- to CVS, development of CVS, and more, see:
- .in +1i
- .SP
- .PD 0
- .IP "" 4
- .B http://cvs.nongnu.org
- .in -1i
- .SP
- .BR ci ( 1 ),
- .BR co ( 1 ),
- .BR cvs ( 5 ),
- .BR cvsbug ( 8 ),
- .BR diff ( 1 ),
- .BR grep ( 1 ),
- .BR patch ( 1 ),
- .BR rcs ( 1 ),
- .BR rcsdiff ( 1 ),
- .BR rcsmerge ( 1 ),
- .BR rlog ( 1 ).