You can specify additional command line options to pass to all CVS
operations in the variable vc-cvs-global-switches. These
switches are inserted immediately after the
cvs command, before
the name of the operation to invoke.
When using a CVS repository on a remote machine, VC can try keeping
network interactions to a minimum. This is controlled by the variable
vc-cvs-stay-local. There is another variable,
vc-stay-local, which enables the feature also for other back
ends that support it, including CVS. In the following, we will talk
vc-cvs-stay-local, but everything applies to
vc-stay-local as well.
only-file (the default), VC
determines the version control status of each file using only the
entry in the local CVS subdirectory and the information returned by
previous CVS commands. As a consequence, if you have modified a file
and somebody else has checked in other changes, you will not be
notified of the conflict until you try to commit.
If you change
nil, VC queries the
remote repository before it decides what to do in
vc-next-action (C-x v v), just as it does for local
You can also set
vc-cvs-stay-local to a regular expression
that is matched against the repository host name; VC then stays local
only for repositories from hosts that match the pattern.
When using a remote repository, Emacs normally makes automatic version backups of the original versions of each edited file. These local backups are made whenever you save the first changes to a file, and they are removed after you commit your changes to the repository. (Note that these are not the same as ordinary Emacs backup files; see Backup.) Commands like C-x v = and C-x v u make use of automatic version backups, if possible, to avoid having to access the network.
nil disables the making
of automatic version backups.
Automatic version backups have names of the form
file.~version.~. This is similar to the name
that C-x v ~ saves old versions to
(see Old Revisions),
except for the additional dot (‘.’) after the version. The
relevant VC commands can use both kinds of version backups. The main
difference is that the manual version backups made by C-x v
~ are not deleted automatically when you commit.
CVS does not use locking by default, but there are ways to enable
locking-like behavior using its
CVSREAD or watch feature;
see the CVS documentation for details. If that case, you can use
C-x v v in Emacs to toggle locking, as you would for a
locking-based version control system
(see VC With A Locking VCS).