cvs [ ''cvs_options''?
CVS is a version control system, which allows you to keep old versions of files (usually source code), keep a log of who, when, and why changes occurred, etc., like RCS or SCCS. Unlike the simpler systems, CVS does not just operate on one file at a time or one directory at a time, but operates on hierarchical collections of directories consisting of version controlled files. CVS helps to manage releases and to control the concurrent editing of source files among multiple authors. CVS allows triggers to enable/log/control various operations and works well over a wide area network.
cvs provides a rich variety of commands (cvs_command in the Synopsis), each of which often has a wealth of options, to satisfy the many needs of source management in distributed environments. However, you don't have to master every detail to do useful work with cvs; in fact, five commands are sufficient to use (and contribute to) the source repository.
cvs checkout modules...
A necessary preliminary for most cvs work: creates your private copy of the source for modules (named collections of source; you can also use a path relative to the source repository here). You can work with this copy without interfering with others' work. At least one subdirectory level is always created.
Execute this command from within your private source directory when you wish to update your copies of source files from changes that other developers have made to the source in the repository.
cvs add file...
Use this command to enroll new files in cvs records of your working directory. The files will be added to the repository the next time you run `cvs commit'. Note: You should use the `cvs import' command to bootstrap new sources into the source repository. `cvs add' is only used for new files to an already checked-out module.
cvs remove file...
Use this command (after erasing any files listed) to declare that you wish to eliminate files from the repository. The removal does not affect others until you run `cvs commit'.
cvs commit file...
The cvs command line can include cvs_options, which apply to the overall cvs program; a cvs_command, which specifies a particular action on the source repository; and command_options and command_arguments to fully specify what the cvs_command will do.
Warning: you must be careful of precisely where you place options relative to the cvs_command. The same option can mean different things depending on whether it is in the cvs_options position (to the left of a cvs command) or in the command_options position (to the right of a cvs command).
As of release 1.6, cvs supports GNU style long options as well as short options. Only a few long options are currently supported, these are listed in brackets after the short options whose functions they duplicate.
Use these options to control the overall cvs program:
-H [ --help?
Causes the command to be really quiet; the command will generate output only for serious problems.
Causes the command to be somewhat quiet; informational messages, such as reports of recursion through subdirectories, are suppressed.
Use bindir as the directory where RCS programs are located (CVS 1.9 and older). Overrides the setting of the RCSBIN environment variable. This value should be specified as an absolute pathname.
Use CVS_root_directory as the root directory pathname of the master source repository. Overrides the setting of the CVSROOT environment variable. This value should be specified as an absolute pathname.
Use editor to enter revision log information. Overrides the setting of the CVSEDITOR , VISUAL , and EDITOR environment variables.
Do not read the cvs startup file (/.cvsrc).
Do not log the cvs_command in the command history (but execute it anyway). See the description of the history command for information on command history.
Do not change any files. Attempt to execute the cvs_command, but only to issue reports; do not remove, update, or merge any existing files, or create any new files.
Trace program execution; display messages showing the steps of cvs activity. Particularly useful with -n to explore the potential impact of an unfamiliar command.
Makes new working files read-only. Same effect as if the CVSREAD environment variable is set.
-v [ --version?
Displays version and copyright information for cvs.
Makes new working files read-write (default). Overrides the setting of the CVSREAD environment variable.
Encrypt all communication between the client and the server. As of this writing, this is only implemented when using a Kerberos connection.
Normally, when CVS starts up, it reads the .cvsrc file from the home directory of the user reading it. This startup procedure can be turned off with the -f flag.
The .cvsrc file lists CVS commands with a list of arguments, one command per line. For example, the following line in .cvsrc:
Here are brief descriptions of all the cvs commands:
Add a new file or directory to the repository, pending a `cvs commit' on the same file. Can only be done from within sources created by a previous `cvs checkout' invocation. Use `cvs import' to place whole new hierarchies of sources under cvs control. (Does not directly affect repository; changes working directory.)
Execute control functions on the source repository. (Changes repository directly; uses working directory without changing it.)
Make a working directory of source files for editing. (Creates or changes working directory.)
Apply to the source repository changes, additions, and deletions from your working directory. (Changes repository.)
Show differences between files in working directory and source repository, or between two revisions in source repository. (Does not change either repository or working directory.)
Prepare copies of a set of source files for shipment off site. Differs from `cvs checkout' in that no cvs administrative directories are created (and therefore `cvs commit' cannot be executed from a directory prepared with `cvs export'), and a symbolic tag must be specified. (Does not change repository; creates directory similar to working directories).
Show reports on cvs commands that you or others have executed on a particular file or directory in the source repository. (Does not change repository or working directory.) History logs are kept only if enabled by creation of the `$CVSROOT/CVSROOT/history' file; see cvs(5).
Incorporate a set of updates from off-site into the source repository, as a ``vendor branch''. (Changes repository.)
Initialize a repository by adding the CVSROOT subdirectory and some default control files. You must use this command or initialize the repository in some other way before you can use it.
Display log information. (Does not change repository or working directory.)
Prepare a collection of diffs as a patch file between two releases in the repository. (Does not change repository or working directory.)
Cancel a `cvs checkout', abandoning any changes. (Can delete working directory; no effect on repository.)
Remove files from the source repository, pending a `cvs commit' on the same files. (Does not directly affect repository; changes working directory.)
Explicitly specify a symbolic tag for particular revisions of files in the source repository. See also `cvs tag'. (Changes repository directly; does not require or affect working directory.)
Show current status of files: latest version, version in working directory, whether working version has been edited and, optionally, symbolic tags in the RCS file. (Does not change repository or working directory.)
Specify a symbolic tag for files in the repository. By default, tags the revisions that were last synchronized with your working directory. (Changes repository directly; uses working directory without changing it.)
This section describes the command_options that are available across several cvs commands. 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 count on the same meaning for the option as in other commands. (Other command options, which are listed with the individual commands, may have different meanings from one cvs command to another.) Warning: the history command is an exception; it supports many options that conflict even with these standard options.
Use the most recent revision no later than date_spec (a single argument, date description specifying a date in the past). A wide variety of date formats are supported, in particular ISO ( date_spec is interpreted as being in the local timezone, unless a specific timezone is specified. 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 (unless you explicitly override it; see the description of the update command). -D is available with the checkout, diff, history, export, rdiff, rtag, and update commands. Examples of valid date specifications include:
1 month ago 2 hours ago 400000 seconds ago last year last Monday yesterday a fortnight ago 3/31/92 10:00:07 PST January 23, 1987 10:05pm 22:00 GMT
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 on 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 version is used in this situation.) -f is available with these commands: checkout, export, rdiff, rtag, and update.
Alter the default processing of keywords. The -k option is available with the add, checkout, diff, export, rdiff, and update commands. 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.
Some of the more useful kflags are -ko and -kb (for binary files), and -kv which is useful for an export where you wish to retain keyword information after an import at some other site.
a cvs command!
Do not run any checkout/commit/tag/update program. (A program can be specified to run on each of these activities, in the modules database; this option bypasses it.) Available with the checkout, commit, export, and rtag commands. Warning: this is not the same as the overall `cvs -n' option, which you can specify to the left of a cvs command!
Prune (remove) directories that are empty after being updated, on checkout, or update. Normally, an empty directory (one that is void of revision-controlled files) is left alone. Specifying -P will cause these directories to be silently removed from your checked-out sources. This does not remove the directory from the repository, only from your checked out copy. Note that this option is implied by the -r or -D options of checkout and export.
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.
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.
Here (finally) are details on all the cvs commands and the options each accepts. The summary lines at the top of each command's description highlight three kinds of things:
Command Options and Arguments
Special options are described in detail below; common command options may appear only in the summary line.
Working Directory, or Repository?
Some cvs commands require a working directory to operate; some require a repository. Also, some commands change the repository, some change the working directory, and some change nothing.
Many commands have synonyms, which you may find easier to remember (or type) than the principal name.
add [__-k__ ''kflag''?
lib/CachedMarkup.php (In template 'browse' < 'body' < 'html'):257: Error: Pure virtual
lib/CachedMarkup.php (In template 'browse' < 'body' < 'html'):257: Error: Pure virtual