[PATCH 5/7] Try to do things in the right order
* emacs/vc-git.el: Added an ugly hack to properly reload vc-git. Only
add GIT to vc-backends list after loading vc. Do not walk .git
directory (add it to the exclusion-list).
Changed installation instructions as discussed on Git mailing list
Signed-off-by: Xavier Maillard <zedek@gnu.org>
---
contrib/emacs/vc-git.el | 17 ++++++++++++++---
1 files changed, 14 insertions(+), 3 deletions(-)
diff --git a/contrib/emacs/vc-git.el b/contrib/emacs/vc-git.el
index 748cb60..3f37e6d 100644
--- a/contrib/emacs/vc-git.el
+++ b/contrib/emacs/vc-git.el
@@ -22,7 +22,8 @@
;; This file contains a VC backend for the git version control
;; system.
;;
-;; To install: put this file on the load-path.
+;; To install: put this file on the load-path then add this line into
+;; your .emacs: (require 'vc-git)
;;
;; TODO
;; - changelog generation
@@ -35,8 +36,14 @@
(require 'vc)
(require 'cl))
-;; Add it automatically
-(add-to-list 'vc-handled-backends 'GIT)
+;; HACK: clear up the cache to force vc-call to check again and
+;; discover new functions when we reload this file.
+(put 'GIT 'vc-functions nil)
+
+;; Add it automatically when loading vc
+;; FIXME: should be directly put into vc.el
+(eval-after-load "vc"
+ '(add-to-list 'vc-handled-backends 'GIT))
(defgroup vc-git nil
"*This is GIT backend for vc."
@@ -188,4 +195,8 @@ COMMENT is the new comment."
;;;###autoload
(add-to-list 'completion-ignored-extensions ".git/")
+(eval-after-load "vc"
+ '(add-to-list 'vc-directory-exclusion-list ".git" t))
+
(provide 'vc-git)
+;;; vc-git.el ends here
\ No newline at end of file
--
1.5.0