cvs—Concurrent Versions System
cvs [ cvs_options ] cvs-command [ command_options ][command_args ]
cvs is a front end to the rcs(1) revision control system, which extends the notion of revision control from a collection of files in a single directory to a hierarchical collection of directories consisting of revision controlled files. These directories and files can be combined together to form a software release. cvs provides the functions necessary to manage these software releases and to control the concurrent editing of source files among multiple software developers.
cvs keeps a single copy of the master sources. This copy is called the source repository; it contains all the information to permit extracting previous software releases at any time based on either a symbolic revision tag, or a date in the past.
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.
There are only two situations where you may omit cvs_command: cvs –H or cvs –help elicits a list of available commands, and cvs –v or cvs –version displays version information on cvs itself.
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]||Display usage information about the specified cvs command (but do not actually execute the command). If you don’t specify a command name, cvs –H displays a summary of all the commands available.|
|–Q||Causes the command to be really quiet; the command will generate output only for serious problems.|
|–q||Causes the command to be somewhat quiet; informational messages, such as reports of recursion through subdirectories, are suppressed.|
|–b bindir||Use bindir as the directory where RCS programs are located. Overrides the setting of the RCSBIN environment variable. This value should be specified as an absolute pathname.|
|–d CVS_root_directory||Use CVS_root_directory as the root directory pathname of the master RCS source repository. Overrides the setting of the CVS-ROOT environment variable. This value should be specified as an absolute pathname.|
|–e editor||Use editor to enter revision log information. Overrides the setting of the CVSEDITOR and the EDITOR environment variables.|
|–f||Do not read the cvs startup file (˜/.cvsrc).|
|–l||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.|
|–n||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.|
|–t||Trace program execution; display messages showing the steps of cvs activity. Particularly useful with –n to explore the potential impact of an unfamiliar command.|
|-r||Makes new working files read-only. Same effect as if the CVS-READ environment variable is set.|
|–v [–version]||Displays version and copyright information for cvs.|
|–w||Makes new working files read-write (default). Overrides the setting of the CVSREAD environment variable.|
|–z compression–level||When transferring files across the network use gzip with compression level compression–level to compress and decompress data as it is transferred. Requires the presence of the GNU gzip program in the current search path at both ends of the link.|
Except when requesting general help with cvs –H, you must specify a cvs_command to cvs to select a specific release control function to perform. Each cvs command accepts its own collection of options and arguments. However, many options are available across several commands. You can display a usage summary for each command by specifying the –H option with the command.
CVS COMMAND SUMMARY
Here are brief descriptions of all the cvs commands:
|add||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.)|
|admin||Execute RCS control functions on the source repository. (Changes repository directly; uses working directory without changing it.)|
|checkout||Make a working directory of source files for editing. (Creates or changes working directory.)|
|commit||Apply to the source repository changes, additions, and deletions from your working directory. (Changes repository.)|
|diff||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.)|
|export||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).|
|history||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).|
|import||Incorporate a set of updates from off-site into the source repository, as a “vendor branch.” (Changes repository.)|
|log||Display RCS log information. (Does not change repository or working directory.)|
|rdiff||Prepare a collection of diffs as a patch file between two releases in the repository. (Does not change repository or working directory.)|
|release||Cancel a cvs checkout, abandoning any changes. (Can delete working directory; no effect on repository.)|
|remove||Remove files from the source repository, pending a cvs commit on the same files. (Does not directly affect repository; changes working directory.)|
|rtag||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.)|
|status||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.)|
|tag||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.)|
|update||Bring your working directory up to date with changes from the repository. Merges are performed automatically when possible; a warning is issued if manual resolution is required for conflicting changes. (Changes working directory; does not change repository.)|