28.1.13.3 Options specific for CVS
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
. If vc-cvs-stay-local
is
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 vc-cvs-stay-local
to 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
repositories.
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 Files.)
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.
Setting vc-cvs-stay-local
to 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 Examining And Comparing 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 Basic Version Control with Locking).