Go to the first, previous, next, last section, table of contents.

# Quick reference to CVS commands

This appendix describes how to invoke CVS, with references to where each command or feature is described in detail. For other references run the `cvs --help` command, or see section Index.

A CVS command looks like:

    cvs [ global_options ] command [ command_options ] [ command_args ]

Global options:

`--allow-root=rootdir`
  Specify legal CVSROOT directory (server only) (not in CVS 1.9 and older). See section Setting up the server for password authentication.
`-a`
  Authenticate all communication (client only) (not in CVS 1.9 and older). See section Global options.
`-b`
  Specify RCS location (CVS 1.9 and older). See section Global options.
`-d root`
  Specify the CVSROOT. See section The Repository.
`-e editor`
  Edit messages with editor. See section Committing your changes.
`-f`
  Do not read the ``~/.cvsrc'` file. See section Global options.
`-H`
`--help`
  Print a help message. See section Global options.
`-l`
  Do not log in CVSROOT/history file. See section Global options.
`-n`
  Do not change any files. See section Global options.
`-Q`
  Be really quiet. See section Global options.
`-q`
  Be somewhat quiet. See section Global options.
`-r`
  Make new working files read-only. See section Global options.
`-s variable=value`
  Set a user variable. See section Expansions in administrative files.
`-T tempdir`
  Put temporary files in tempdir. See section Global options.
`-t`
  Trace CVS execution. See section Global options.
`-v`
`--version`
  Display version and copyright information for CVS.
`-w`
  Make new working files read-write. See section Global options.
`-x`
  Encrypt all communication (client only). See section Global options.
`-z gzip-level`
  Set the compression level (client only).

Keyword expansion modes (see section Substitution modes):

    -kkv  $Id: file1,v 1.1 1993/12/09 03:21:13 joe Exp $
    -kkvl $Id: file1,v 1.1 1993/12/09 03:21:13 joe Exp harry $
    -kk   $Id$
    -kv   file1,v 1.1 1993/12/09 03:21:13 joe Exp
    -ko   no expansion
    -kb   no expansion, file is binary

Keywords (see section Keyword List):

    $Author: joe $
    $Date: 1993/12/09 03:21:13 $
    $Header: /home/files/file1,v 1.1 1993/12/09 03:21:13 joe Exp harry $
    $Id: file1,v 1.1 1993/12/09 03:21:13 joe Exp harry $
    $Locker: harry $
    $Name: snapshot_1_14 $
    $RCSfile: file1,v $
    $Revision: 1.1 $
    $Source: /home/files/file1,v $
    $State: Exp $
    $Log: file1,v $
    Revision 1.1  1993/12/09 03:30:17  joe
    Initial revision

Commands, command options, and command arguments:

`add [options] [files...]`
  Add a new file/directory. See section Adding files to a directory.
  `-k kflag`
    Set keyword expansion.
  `-m msg`
    Set file description.
`admin [options] [files...]`
  Administration of history files in the repository. See section admin--Administration.
  `-b[rev]`
    Set default branch. See section Reverting to the latest vendor release.
  `-cstring`
    Set comment leader.
  `-ksubst`
    Set keyword substitution. See section Keyword substitution.
  `-l[rev]`
    Lock revision rev, or latest revision.
  `-mrev:msg`
    Replace the log message of revision rev with msg.
  `-orange`
    Delete revisions from the repository. See section admin options.
  `-q`
    Run quietly; do not print diagnostics.
  `-sstate[:rev]`
    Set the state.
  `-t`
    Set file description from standard input.
  `-tfile`
    Set file description from file.
  `-t-string`
    Set file description to string.
  `-u[rev]`
    Unlock revision rev, or latest revision.
`annotate [options] [files...]`
  Show last revision where each line was modified. See section Annotate command.
  `-D date`
    Annotate the most recent revision no later than date. See section Common command options.
  `-f`
    Use head revision if tag/date not found. See section Common command options.
  `-l`
    Local; run only in current working directory. See section Recursive behavior.
  `-R`
    Operate recursively (default). See section Recursive behavior.
  `-r tag`
    Annotate revision tag. See section Common command options.
`checkout [options] modules...`
  Get a copy of the sources. See section checkout--Check out sources for editing.
  `-A`
    Reset any sticky tags/date/options. See section Sticky tags and section Keyword substitution.
  `-c`
    Output the module database. See section checkout options.
  `-D date`
    Check out revisions as of date (is sticky). See section Common command options.
  `-d dir`
    Check out into dir. See section checkout options.
  `-f`
    Use head revision if tag/date not found. See section Common command options.
  `-j rev`
    Merge in changes. See section checkout options.
  `-k kflag`
    Use kflag keyword expansion. See section Substitution modes.
  `-l`
    Local; run only in current working directory. See section Recursive behavior.
  `-N`
    Don't "shorten" module paths if -d specified. See section checkout options.
  `-n`
    Do not run module program (if any). See section checkout options.
  `-P`
    Prune empty directories. See section Moving and renaming directories.
  `-p`
    Check out files to standard output (avoids stickiness). See section checkout options.
  `-R`
    Operate recursively (default). See section Recursive behavior.
  `-r tag`
    Checkout revision tag (is sticky). See section Common command options.
  `-s`
    Like -c, but include module status. See section checkout options.
`commit [options] [files...]`
  Check changes into the repository. See section commit--Check files into the repository.
  `-F file`
    Read log message from file. See section commit options.
  `-f`
    Force the file to be committed; disables recursion. See section commit options.
  `-l`
    Local; run only in current working directory. See section Recursive behavior.
  `-m msg`
    Use msg as log message. See section commit options.
  `-n`
    Do not run module program (if any). See section commit options.
  `-R`
    Operate recursively (default). See section Recursive behavior.
  `-r rev`
    Commit to rev. See section commit options.
`diff [options] [files...]`
  Show differences between revisions. See section diff--Show differences between revisions. In addition to the options shown below, accepts a wide variety of options to control output style, for example ``-c'` for context diffs.
  `-D date1`
    Diff revision for date against working file. See section diff options.
  `-D date2`
    Diff rev1/date1 against date2. See section diff options.
  `-l`
    Local; run only in current working directory. See section Recursive behavior.
  `-N`
    Include diffs for added and removed files. See section diff options.
  `-R`
    Operate recursively (default). See section Recursive behavior.
  `-r rev1`
    Diff revision for rev1 against working file. See section diff options.
  `-r rev2`
    Diff rev1/date1 against rev2. See section diff options.
`edit [options] [files...]`
  Get ready to edit a watched file. See section How to edit a file which is being watched.
  `-a actions`
    Specify actions for temporary watch, where actions is `edit`, `unedit`, `commit`, `all`, or `none`. See section How to edit a file which is being watched.
  `-l`
    Local; run only in current working directory. See section Recursive behavior.
  `-R`
    Operate recursively (default). See section Recursive behavior.
`editors [options] [files...]`
  See who is editing a watched file. See section Information about who is watching and editing.
  `-l`
    Local; run only in current working directory. See section Recursive behavior.
  `-R`
    Operate recursively (default). See section Recursive behavior.
`export [options] modules...`
  Export files from CVS. See section export--Export sources from CVS, similar to checkout.
  `-D date`
    Check out revisions as of date. See section Common command options.
  `-d dir`
    Check out into dir. See section export options.
  `-f`
    Use head revision if tag/date not found. See section Common command options.
  `-k kflag`
    Use kflag keyword expansion. See section Substitution modes.
  `-l`
    Local; run only in current working directory. See section Recursive behavior.
  `-N`
    Don't "shorten" module paths if -d specified. See section export options.
  `-n`
    Do not run module program (if any). See section export options.
  `-P`
    Prune empty directories. See section Moving and renaming directories.
  `-R`
    Operate recursively (default). See section Recursive behavior.
  `-r tag`
    Checkout revision tag (is sticky). See section Common command options.
`history [options] [files...]`
  Show repository access history. See section history--Show status of files and users.
  `-a`
    All users (default is self). See section history options.
  `-b str`
    Back to record with str in module/file/repos field. See section history options.
  `-c`
    Report on committed (modified) files. See section history options.
  `-D date`
    Since date. See section history options.
  `-e`
    Report on all record types. See section history options.
  `-l`
    Last modified (committed or modified report). See section history options.
  `-m module`
    Report on module (repeatable). See section history options.
  `-n module`
    In module. See section history options.
  `-o`
    Report on checked out modules. See section history options.
  `-r rev`
    Since revision rev. See section history options.
  `-T`
    Produce report on all TAGs. See section history options.
  `-t tag`
    Since tag record placed in history file (by anyone). See section history options.
  `-u user`
    For user user (repeatable). See section history options.
  `-w`
    Working directory must match. See section history options.
  `-x types`
    Report on types, one or more of `TOEFWUCGMAR`. See section history options.
  `-z zone`
    Output for time zone zone. See section history options.
`import [options] repository vendor-tag release-tags...`
  Import files into CVS, using vendor branches. See section import--Import sources into CVS, using vendor branches.
  `-b bra`
    Import to vendor branch bra. See section Multiple vendor branches.
  `-d`
    Use the file's modification time as the time of import. See section import options.
  `-k kflag`
    Set default keyword substitution mode. See section import options.
  `-m msg`
    Use msg for log message. See section import options.
  `-I ign`
    More files to ignore (! to reset). See section import options.
  `-W spec`
    More wrappers. See section import options.
`init`
  Create a CVS repository if it doesn't exist. See section Creating a repository.
`log [options] [files...]`
  Print out history information for files. See section log--Print out log information for files.
  `-b`
    Only list revisions on the default branch. See section log options.
  `-d dates`
    Specify dates (d1<d2 for range, d for latest before). See section log options.
  `-h`
    Only print header. See section log options.
  `-l`
    Local; run only in current working directory. See section Recursive behavior.
  `-N`
    Do not list tags. See section log options.
  `-R`
    Only print name of RCS file. See section log options.
  `-rrevs`
    Only list revisions revs. See section log options.
  `-s states`
    Only list revisions with specified states. See section log options.
  `-t`
    Only print header and descriptive text. See section log options.
  `-wlogins`
    Only list revisions checked in by specified logins. See section log options.
`login`
  Prompt for password for authenticating server. See section Using the client with password authentication.
`logout`
  Remove stored password for authenticating server. See section Using the client with password authentication.
`rdiff [options] modules...`
  Show differences between releases. See section rdiff---'patch' format diffs between releases.
  `-c`
    Context diff output format (default). See section rdiff options.
  `-D date`
    Select revisions based on date. See section Common command options.
  `-f`
    Use head revision if tag/date not found. See section Common command options.
  `-l`
    Local; run only in current working directory. See section Recursive behavior.
  `-R`
    Operate recursively (default). See section Recursive behavior.
  `-r rev`
    Select revisions based on rev. See section Common command options.
  `-s`
    Short patch - one liner per file. See section rdiff options.
  `-t`
    Top two diffs - last change made to the file. See section diff options.
  `-u`
    Unidiff output format. See section rdiff options.
  `-V vers`
    Use RCS Version vers for keyword expansion (obsolete). See section rdiff options.
`release [options] directory`
  Indicate that a directory is no longer in use. See section release--Indicate that a Module is no longer in use.
  `-d`
    Delete the given directory. See section release options.
`remove [options] [files...]`
  Remove an entry from the repository. See section Removing files.
  `-f`
    Delete the file before removing it. See section Removing files.
  `-l`
    Local; run only in current working directory. See section Recursive behavior.
  `-R`
    Operate recursively (default). See section Recursive behavior.
`rtag [options] tag modules...`
  Add a symbolic tag to a module. See section rtag--Add a symbolic tag to a module.
  `-a`
    Clear tag from removed files that would not otherwise be tagged. See section rtag options.
  `-b`
    Create a branch named tag. See section rtag options.
  `-D date`
    Tag revisions as of date. See section rtag options.
  `-d`
    Delete the given tag. See section rtag options.
  `-F`
    Move tag if it already exists. See section rtag options.
  `-f`
    Force a head revision match if tag/date not found. See section rtag options.
  `-l`
    Local; run only in current working directory. See section Recursive behavior.
  `-n`
    No execution of tag program. See section rtag options.
  `-R`
    Operate recursively (default). See section Recursive behavior.
  `-r tag`
    Tag existing tag tag. See section rtag options.
`status [options] files...`
  Display status information in a working directory. See section File status.
  `-l`
    Local; run only in current working directory. See section Recursive behavior.
  `-R`
    Operate recursively (default). See section Recursive behavior.
  `-v`
    Include tag information for file. See section Tags--Symbolic revisions.
`tag [options] tag [files...]`
  Add a symbolic tag to checked out version of files. See section tag--Add a symbolic tag to checked out versions of files.
  `-b`
    Create a branch named tag. See section tag options.
  `-D date`
    Tag revisions as of date. See section tag options.
  `-d`
    Delete the given tag. See section tag options.
  `-F`
    Move tag if it already exists. See section tag options.
  `-f`
    Force a head revision match if tag/date not found. See section tag options.
  `-l`
    Local; run only in current working directory. See section Recursive behavior.
  `-n`
    No execution of tag program. See section tag options.
  `-R`
    Operate recursively (default). See section Recursive behavior.
  `-r tag`
    Tag existing tag tag. See section tag options.
`unedit [options] [files...]`
  Undo an edit command. See section How to edit a file which is being watched.
  `-a actions`
    Specify actions for temporary watch, where actions is `edit`, `unedit`, `commit`, `all`, or `none`. See section How to edit a file which is being watched.
  `-l`
    Local; run only in current working directory. See section Recursive behavior.
  `-R`
    Operate recursively (default). See section Recursive behavior.
`update [options] [files...]`
  Bring work tree in sync with repository. See section update--Bring work tree in sync with repository.
  `-A`
    Reset any sticky tags/date/options. See section Sticky tags and section Keyword substitution.
  `-D date`
    Check out revisions as of date (is sticky). See section Common command options.
  `-d`
    Create directories. See section update options.
  `-f`
    Use head revision if tag/date not found. See section Common command options.
  `-I ign`
    More files to ignore (! to reset). See section import options.
  `-j rev`
    Merge in changes. See section update options.
  `-k kflag`
    Use kflag keyword expansion. See section Substitution modes.
  `-l`
    Local; run only in current working directory. See section Recursive behavior.
  `-P`
    Prune empty directories. See section Moving and renaming directories.
  `-p`
    Check out files to standard output (avoids stickiness). See section update options.
  `-R`
    Operate recursively (default). See section Recursive behavior.
  `-r tag`
    Checkout revision tag (is sticky). See section Common command options.
  `-W spec`
    More wrappers. See section import options.
`watch [on|off|add|remove] [options] [files...]`
  on/off: turn on/off read-only checkouts of files. See section Telling CVS to watch certain files. add/remove: add or remove notification on actions. See section Telling CVS to notify you.
  `-a actions`
    Specify actions for temporary watch, where actions is `edit`, `unedit`, `commit`, `all`, or `none`. See section How to edit a file which is being watched.
  `-l`
    Local; run only in current working directory. See section Recursive behavior.
  `-R`
    Operate recursively (default). See section Recursive behavior.
`watchers [options] [files...]`
  See who is watching a file. See section Information about who is watching and editing.
  `-l`
    Local; run only in current working directory. See section Recursive behavior.
  `-R`
    Operate recursively (default). See section Recursive behavior.

Go to the first, previous, next, last section, table of contents.