Next: Change Log, Up: Maintaining [Contents][Index]

### 28.1 Version Control

A version control system is a program that can record multiple versions of a source file, storing information such as the creation time of each version, who made it, and a description of what was changed.

The Emacs version control interface is called VC. VC commands work with several different version control systems; currently, it supports Bazaar, CVS, Git, Mercurial, Monotone, RCS, SCCS/CSSC, and Subversion. Of these, the GNU project distributes CVS, RCS, and Bazaar.

VC is enabled automatically whenever you visit a file governed by a version control system. To disable VC entirely, set the customizable variable `vc-handled-backends` to `nil` (see Customizing VC).

To update the VC state information for the file visited in the current buffer, use the command `vc-refresh-state`. This command is useful when you perform version control commands outside Emacs (e.g., from the shell prompt), or if you put the buffer’s file under a different version control system, or remove it from version control entirely. A companion command `vc-state-refresh` does the same, but does not consider switching the version control system or removal from VC.

Next: Change Log, Up: Maintaining [Contents][Index]