Next: [[cvs: admin--Administration#admin—Administration|admin]], Previous: [[cvs: Global options#Global options|Global options]], Up: [[cvs: Guide to CVS commands#Guide to CVS commands|CVS commands]] |[[cvs: Index#SEC_Contents|Contents]]||[[cvs: Index#Index|Index]]|

----

=== Common command options ===

This section describes the ‘`command_options`’ that are available across several CVS commands. These options are always given to the right of ‘`cvs_command`’. 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 CVS command to the other).

'''Note: the ‘`history`’ command is an exception; it supports many options that conflict even with these standard options.'''

;`-D date_spec` : Use the most recent revision no later than date_spec. date_spec is a single argument, a date description specifying a date in the past.

: The specification is sticky when you use it to make a private copy of a source file; that is, when you get a working file using ‘`-D`’, CVS 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 [[cvs: Sticky tags#Sticky tags|Sticky tags]]).

: ‘`-D`’ is available with the `annotate`, `checkout`, `diff`, `export`, `history`, `rdiff`, `rtag`, `tag`, and `update` commands. (The `history` command uses this option in a slightly different way; see [[cvs: history options#history options|history options]]).

: A wide variety of date formats are supported by CVS. The most standard ones are ISO8601 (from the International Standards Organization) and the Internet e-mail standard (specified in RFC822 as amended by RFC1123).

: ISO8601 dates have many variants but a few examples are:

1972-09-24 1972-09-24 20:05

: There are a lot more ISO8601 date formats, and CVS accepts many of them, but you probably don’t want to hear the ''whole'' long story<nowiki> :</nowiki>-).

: In addition to the dates allowed in Internet e-mail itself, CVS also allows some of the fields to be omitted. For example:

24 Sep 1972 20:05 24 Sep

: The date is interpreted as being in the local timezone, unless a specific timezone is specified.

: These two date formats are preferred. However, CVS currently accepts a wide variety of other date formats. They are intentionally not documented here in any detail, and future versions of CVS might not accept all of them.

: One such format is `month/day/year`. This may confuse people who are accustomed to having the month and day in the other order; ‘`1/4/96`’ is January 4, not April 1.

: Remember to quote the argument to the ‘`-D`’ flag so that your shell doesn’t interpret spaces as argument separators. A command using the ‘`-D`’ flag can look like this:

$ cvs diff -D "1 hour ago" cvs.texinfo
;`-f` : When you specify a particular date or tag to CVS commands, they normally ignore files that do not contain the tag (or did not exist prior to the date) that you specified. Use the ‘`-f`’ 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).

: Note that even with ‘`-f`’, a tag that you specify must exist (that is, in some file, not necessary in every file). This is so that CVS will continue to give an error if you mistype a tag name.

: ‘`-f`’ is available with these commands: `annotate`, `checkout`, `export`, `rdiff`, `rtag`, and `update`.

: '''WARNING: The `commit` and `remove` commands also have a ‘`-f`’ option, but it has a different behavior for those commands. See [[cvs: commit options#commit options|commit options]], and [[cvs: Removing files#Removing files|Removing files]].'''

;`-k kflag` : Override the default processing of RCS keywords other than ‘`-kb`’. See [[cvs: Keyword substitution#Keyword substitution|Keyword substitution]], for the meaning of kflag. Used with the `checkout` and `update` commands, your kflag specification is sticky; that is, when you use this option with a `checkout` or `update` command, CVS associates your selected kflag with any files it operates on, and continues to use that kflag with future commands on the same files until you specify otherwise.

: The ‘`-k`’ option is available with the `add`, `checkout`, `diff`, `export`, `import` and `update` commands.

: '''WARNING: Prior to CVS version 1.12.2, the ‘`-k`’ flag overrode the ‘`-kb`’ indication for a binary file. This could sometimes corrupt binary files. See [[cvs: Merging and keywords#Merging and keywords|Merging and keywords]], for more.'''

;`-l` : Local; run only in current working directory, rather than recursing through subdirectories.

: Available with the following commands: `annotate`, `checkout`, `commit`, `diff`, `edit`, `editors`, `export`, `log`, `rdiff`, `remove`, `rtag`, `status`, `tag`, `unedit`, `update`, `watch`, and `watchers`.

;`-m message` : Use message as log information, instead of invoking an editor.

: Available with the following commands: `add`, `commit` and `import`.

;`-n` : Do not run any tag program. (A program can be specified to run in the modules database (see [[cvs: The modules file#The modules file|modules]]); this option bypasses it).

: '''Note: this is not the same as the ‘`cvs -n`’ program option, which you can specify to the left of a cvs command!'''

: Available with the `checkout`, `commit`, `export`, and `rtag` commands.

;`-P` : Prune empty directories. See [[cvs: Removing directories#Removing directories|Removing directories]].

;`-p` : Pipe the files retrieved from the repository to standard output, rather than writing them in the current directory. Available with the `checkout` and `update` commands.

;`-R` : Process directories recursively. This is on by default.

: Available with the following commands: `annotate`, `checkout`, `commit`, `diff`, `edit`, `editors`, `export`, `rdiff`, `remove`, `rtag`, `status`, `tag`, `unedit`, `update`, `watch`, and `watchers`.

;`-r tag`
: Use the revision specified by the tag argument instead of the default head revision. As well as arbitrary tags defined with the `tag` or `rtag` command, two special tags are always available: ‘`HEAD`’ refers to the most recent version available in the repository, and ‘`BASE`’ refers to the revision you last checked out into the current working directory.

: The tag specification is sticky when you use this with `checkout` or `update` to make your own copy of a file: CVS remembers the tag and continues to use it on future update commands, until you specify otherwise (for more information on sticky tags/dates, see [[cvs: Sticky tags#Sticky tags|Sticky tags]]).

: The tag can be either a symbolic or numeric tag, as described in [[cvs: Tags-Symbolic revisions#Tags–Symbolic revisions|Tags]], or the name of a branch, as described in [[cvs: Branching and merging#Branching and merging|Branching and merging]].

: Specifying the ‘`-q`’ global option along with the ‘`-r`’ command option is often useful, to suppress the warning messages when the RCS file does not contain the specified tag.

: '''Note: this is not the same as the overall ‘`cvs -r`’ option, which you can specify to the left of a CVS command!'''

: ‘`-r`’ is available with the `checkout`, `commit`, `diff`, `history`, `export`, `rdiff`, `rtag`, and `update` commands.

;`-W` : 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 ‘`.cvswrappers`’ file. Available with the following commands: `import`, and `update`.

----

Next: [[cvs: admin--Administration#admin—Administration|admin]], Previous: [[cvs: Global options#Global options|Global options]], Up: [[cvs: Guide to CVS commands#Guide to CVS commands|CVS commands]] |[[cvs: Index#SEC_Contents|Contents]]||[[cvs: Index#Index|Index]]|

This document was generated on a sunny day using [http://www.nongnu.org/texi2html/ texi2html].