Emacs normally does not save backup files for source files that are
maintained with version control. If you want to make backup files even
for files that use version control, set the variable
vc-make-backup-files to a non-nil value.
Editing a version-controlled file through a symbolic link may cause
unexpected results, if you are unaware that the underlying file is
version-controlled. The variable vc-follow-symlinks controls
what Emacs does if you try to visit a symbolic link pointing to a
version-controlled file. If the value is ask (the default),
Emacs asks for confirmation. If it is nil, Emacs just displays
a warning message. If it is t, Emacs automatically follows the
link and visits the real file instead.
If vc-suppress-confirm is non-nil, then C-x v v
and C-x v i can save the current buffer without asking, and
C-x v u also operates without asking for confirmation.
VC mode does much of its work by running the shell commands for the
appropriate version control system. If vc-command-messages is
non-nil, VC displays messages to indicate which shell commands
it runs, and additional messages when the commands finish.
Normally checkin operations are done synchronously; that is, Emacs waits until the checkin has completed before doing anything else. This can be inconvenient for repositories in which the checkin operation is slow, such as Git repositories where you check in changes to very large files, or Mercurial repositories with a very large number of files.
For those backends which support it, setting vc-async-checkin
to non-nil switches to doing checkin operations asynchronously.
This is particularly useful as a directory local variable in
repositories where checkin operations are slow (see Directory Local
Variables in GNU Emacs Lisp Reference Manual).
While an asynchronous checkin operation is in progress, if you use C-x C-s to save a buffer visiting any file within the current VC tree, then the operation reverts to a synchronous checkin and Emacs waits for it to complete before saving the buffer. This is to avoid nondeterminism regarding exactly what changes get checked in.