Previous: RCS and SCCS, Up: Customizing VC [Contents][Index]

#### 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`. 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 only about `vc-cvs-stay-local`, but everything applies to `vc-stay-local` as well.

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.) 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 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).

Previous: RCS and SCCS, Up: Customizing VC [Contents][Index]