Extending VC

VC was designed from the beginning to be usable as a front end for multiple version control systems. The code that actually runs the version control tools is carefully isolated from the user-level package logic in such a way that plugging in new systems is not very hard. VC’s author originally wrote it to handle SCCS and RCS; CVS support was added later, by a different person, without much difficulty.

At the time of this writing, efforts are known to be under way to teach VC about ClearCase, a popular commercial project-management system. Whether this code is accepted into the GNU Emacs distribution, considering the FSF’s hostile attitude towards non-freeware, is another question. But the ClearCase changes will probably be made generally available through other channels if the FSF does not accept them.

By the time you read this book, then, your VC may well handle additional systems besides the three we have described here (though these three are likely to remain the most popular ones in the Internet/UNIX world for the foreseeable future). If you are a skilled Emacs LISP programmer (or would like to become one) and have your own favorite version control system, by all means hack the source code—extend VC to use it, and share your results so everyone benefits.

Get Learning GNU Emacs, Second Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.