Common command options

This section describes the command_options that are available across several cvsnt 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 cvsnt command to the other).

Warning: 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, cvsnt 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, the section called “Sticky tags”).

-D is available with the checkout, diff, export, history, rdiff, rtag, and update commands. (The history command uses this option in a slightly different way; the section called “history options”).

A wide variety of date formats are supported by cvsnt. 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 cvsnt 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, cvsnt 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, cvsnt currently accepts a wide variety of other date formats. They are intentionally not documented here in any detail, and future versions of cvsnt 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 cvsnt 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 cvsnt 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 the section called “commit options”, and the section called “Removing files”.

-k kflag

Alter the default processing of keywords. Chapter 13, 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, cvsnt 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, import and update commands.

-l

Local; run only in current working directory, rather than recursing through subdirectories.

Warning: this is not the same as the overall cvs -l option, which you can specify to the left of a cvs command!

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 checkout/commit/tag program. (A program can be specified to run on each of these activities, in the modules database (the section called “The modules file”); this option bypasses it).

Warning: this is not the same as the overall cvs -n 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 the section called “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: cvsnt remembers the tag and continues to use it on future update commands, until you specify otherwise (for more information on sticky tags/dates, the section called “Sticky tags”).

The tag can be either a symbolic or numeric tag, as described in the section called “Tags-Symbolic revisions”, or the name of a branch, as described in Chapter 6, 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.

Warning: this is not the same as the overall cvs -r option, which you can specify to the left of a cvsnt 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.