Next: , Previous: , Up: CVS commands   [Contents][Index]


A.5 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).

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 Sticky tags).

-D’ is available with the annotate, checkout, diff, export, history, rdiff, rtag, and update commands. (The history command uses this option in a slightly different way; see 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 :-).

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 commit options, and Removing files.

-k kflag

Alter the default processing of keywords. See Keyword substitution, for the meaning of kflag. Your kflag specification is sticky when you use it to create a private copy of a source file; that is, when you use this option with the checkout or update commands, CVS associates your selected kflag with the file, and continues to use it with future update commands on the same file until you specify otherwise.

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

-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 modules); this option bypasses it).

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, export, and rtag commands.

-P

Prune empty directories. See 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 Sticky tags).

The tag can be either a symbolic or numeric tag, as described in Tags, or the name of a branch, as described in Branching and merging. When a command expects a specific revision, the name of a branch is interpreted as the most recent revision on that branch.

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.

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 annotate, 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: , Previous: , Up: CVS commands   [Contents][Index]