7.10 Support for Version Control

Ediff supports version control and lets you compare versions of files visited by Emacs buffers via the function ediff-revision. This feature is controlled by the following variables:


A symbol. The default is ‘vc’.

If you are like most Emacs users, Ediff will use VC as the version control package. This is the standard Emacs interface to RCS, CVS, and SCCS.

However, if your needs are better served by other interfaces, you will have to tell Ediff which version control package you are using, e.g.,

(setq ediff-version-control-package 'rcs)

Apart from the standard vc.el, Ediff supports three other interfaces to version control: rcs.el, pcl-cvs.el (recently renamed pcvs.el), and generic-sc.el. The package rcs.el is written by Sebastian Kremer <sk@thp.Uni-Koeln.DE> and is available as


Ediff’s interface to the above packages allows the user to compare the versions of the current buffer or to merge them (with or without an ancestor-version). These operations can also be performed on directories containing files under version control.

In case of pcl-cvs.el, Ediff can also be invoked via the function run-ediff-from-cvs-buffer—see the documentation string for this function.