GNU Emacs Integration for Fossil

This file contains a GNU Emacs VC backend for the Fossil version control system. You need GNU Emacs version 25.1 or later.

How Do I load Fossil support into emacs?

Short answer:

Install the vc-fossil package from the non-GNU ELPA package repository then customize the vc-handled-backend variable by adding "Fossil" to its list of names.

Alternative, slightly longer, answer:

Instead of installing from non-GNU ELPA you may clone this source repository directly then add it manually to your Emacs setup as follows.

Add this to your .emacs file, or cut and paste this into the scratch buffer and do C-x C-e to execute it.

(add-to-list 'vc-handled-backends 'Fossil t)
(load-file "/path/to/this/project/vc/el/vc-fossil.el")

or if you would rather load the file lazily, compile the file (see below) and use this instead:

(add-to-list 'vc-handled-backends 'Fossil t)
(autoload 'vc-fossil-registered "/path/to/this/project/vc/el/vc-fossil.elc")

To compile the file (with warnings) do the following:

emacs -batch -q -no-site-file -eval '(byte-compile-file "vc-fossil.el")'

then you can load vc-fossil.elc, which should be nominally faster.

Using use-package

If you want to use use-package to setup vc-fossil; then this snippet might be helpfull:

(use-package vc-fossil
  ;; Keep from loading unnecessarily at startup.
  :defer t
  ;; This allows VC to load vc-fossil when needed.
  :init (add-to-list 'vc-handled-backends 'Fossil t))

What emacs keys do I need?

This integrates fossil into emacs vc builtin mode. The same keys will work for fossil inside a fossil tree as for other SCMs.

A few are:

C-x v dRun Fossil dired - like cvs-examine
C-x v lWhen in a file, show log
vIn VC, do next action: merge/update/checkin



If you're reading this on github, this is mirrored for MELPA from

There is also a mirror at maintained by Alfred M. Szmidt.