Книга: Learning GNU Emacs, 3rd Edition
12.9 Customizing VC
12.9 Customizing VC
Some of the rules we've described earlier in the chapter for VC's behavior can be changed by setting certain Emacs variables related to VC mode. We'll go over a few of the most important here.
vc-handled-backends
This variable controls the set of version control systems used by VC, and the order in which they are found in the list controls the order in which they are attempted. It defaults to (RCS CVS SVN MCVS SCCS)
. If you remove values from the list, they won't be considered valid version control systems to use. If the list is empty, VC is disabled entirely.
vc-display-status
This variable displays a file's revision number and status on the mode line of each buffer visiting it, if this is non-nil. To avoid expensive queries of the master file, you may want to turn this variable off if you are running VC over very slow network links.
vc-backend-header
These variables provides lists of the headers to be inserted by vc-insert-headers when using the specified version control system. For example, the headers for CVS are in the variable vc-cvs-header. You can customize these lists if you like a different format for your version number headers.
vc-keep-workfiles
Normally, VC leaves a read-only copy of the work file in place whenever it performs a check-in. This feature is convenient because it means make and other tools always find work files where they expect to. If you're very tight on disk space, you can turn it off, but then you have to execute an explicit check-out every time a tool other than VC needs the work file. (Emacs itself knows about version control through a piece of VC code that's always resident; its visit commands perform a check-out if necessary, without locking the file.)
vc-mistrust-permissions
This variable is normally nil. Make it t to tell VC not to trust a file's permissions or ownership as indicators of its version control state. This change slows VC down a lot, but it may be necessary if (for example) your development group is working in several different directories and accessing work files via symbolic links. In such a case, the permissions and ownership of the link convey nothing about the state of the work file.
vc-suppress-confirm
This variable defaults to nil. If it is non-nil, it suppresses the confirmation prompt vc-revert-buffer normally gives you before discarding changes.
vc-initial-comment
Most version control systems allow (but do not require) you to enter an initial comment when you register a file—a lead-off for the change history. If this variable is non-nil, VC pops up a buffer for this comment at registration time just as it normally does for change comments at check-in time.
diff-switches
The Emacs diff.el mode takes command-line switches from this global variable to pass to diff when generating a change report. VC uses it the same way. It defaults to the single switch -c to force context-diff format; -u for unified-diff format is also fairly popular.
A number of other, less important global variables are fully documented in the Emacs online help system.
- 12.1 The Uses of Version Control
- 12.2 Version Control Concepts
- 12.3 How VC Helps with Basic Operations
- 12.4 Editing Comment Buffers
- 12.5 VC Command Summary
- 12.6 VC Mode Indicators
- 12.7 Which Version Control System?
- 12.8 Individual VC Commands
- 12.9 Customizing VC
- 12.10 Extending VC
- 12.11 What VC Is Not
- 12.12 Using VC Effectively
- 12.13 Comparing with Ediff
- 16.2.2. Customizing Kernel Initialization
- 10.3.3 Customizing Fonts Through Custom
- Chapter 10. Customizing Emacs
- Chapter 5 Customizing a Board Support Package
- Customizing Default Tests
- Lesson 1: Creating and Customizing the Operating System Design
- 9.3.2 Customizing Code Indentation Style
- 10.1.3 Customizing with Custom
- 10.4 Customizing Your Key Bindings
- 11.6 Customizing Existing Modes
- 12.13.7 Customizing Ediff
- 14.5.1 Customizing Completion