diff-hl-mode highlights uncommitted changes on the left fringe of the window,
allows you to jump between and revert them selectively.
For the usage instructions and the list of commands, see the header comment.
Tested with Git, Mercurial, Bazaar and SVN. May work with other VC backends, too.
Top window: a buffer in this minor mode, bottom window: the corresponding diff.
Emacs 24+. On OS X, Emacs 24.3 or higher is recommended.
-
Since it uses the corresponding VC diff command, it's only accurate when the buffer is in saved state. Highlighting changes "on the fly" might be better, maybe we can do something similar to
highlight-markup-bufferswith a hidden buffer containing the unmodified copy. -
There's no fringe when Emacs is running in the console, but the navigation and revert commands still work.
-
Frame-local and buffer-local values of
line-spacingare not supported. -
git-gutter provides interactive commands to show/hide/toggle margin indicators for the same information, and allows you to customize how the indicators look.
If you're using some package other than vc to commit changes, it might
not run vc-checkin-hook after commits. In that case, you'll need to
either add diff-hl-update to the hook it does run, or advise some
function that's called in the buffer after its state has changed.
(defadvice svn-status-update-modeline (after svn-update-diff-hl activate)
(diff-hl-update))