Show diff for REV.
authorOleksandr Gavenko <gavenkoa@gmail.com>
Tue, 04 Jun 2019 19:38:35 +0300
changeset 1593 8f9430c7d2f7
parent 1592 58938ef683aa
child 1594 cf7966919bd9
Show diff for REV. https://emacs.stackexchange.com/questions/40506/how-can-i-see-diff-for-specific-changeset/
.emacs-my
--- a/.emacs-my	Sun Jun 02 14:45:01 2019 +0300
+++ b/.emacs-my	Tue Jun 04 19:38:35 2019 +0300
@@ -2538,9 +2538,22 @@
 (message "vc-mode, VCS, version control, cvs, svn, mercurial, hg, bazaar, bzr, git, fossil")
 
 (eval-when 'compile
+  (require 'vc)
+  (require 'vc-hooks)
   (require 'vc-annotate)
   (require 'vc-svn))
 
+(defun my-vc-show-rev (rev)
+  "Show diff for REV."
+  (interactive "sRevision: ")
+  (let ((backend (vc-responsible-backend default-directory)))
+    (when backend
+      (let ((rev-from (vc-call-backend backend 'previous-revision nil rev)))
+        (when rev-from
+          (vc-diff-internal t (list backend nil) rev-from rev))))))
+
+(global-set-key (kbd "C-x v R") 'my-vc-show-rev)
+
 ;; `-b' switch to ignore changes in whitespaces.
 ;; (setq vc-git-diff-switches "-b")
 ;; (setq vc-diff-switches "-b")