[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] /srv/bzr/emacs/trunk r108811: * vc/vc-git.el (vc-git-regis
From: |
Michael Albinus |
Subject: |
[Emacs-diffs] /srv/bzr/emacs/trunk r108811: * vc/vc-git.el (vc-git-registered): Use cache property |
Date: |
Sat, 30 Jun 2012 15:18:16 +0200 |
User-agent: |
Bazaar (2.5.0) |
------------------------------------------------------------
revno: 108811
committer: Michael Albinus <address@hidden>
branch nick: trunk
timestamp: Sat 2012-06-30 15:18:16 +0200
message:
* vc/vc-git.el (vc-git-registered): Use cache property
`git-registered'.
(vc-git-mode-line-string): Call `vc-working-revision' instead of
`vc-git-working-revision' in order to benefit from the cache.
(vc-git-root): Use cache property `git-root'.
modified:
lisp/ChangeLog
lisp/vc/vc-git.el
=== modified file 'lisp/ChangeLog'
--- a/lisp/ChangeLog 2012-06-30 13:14:00 +0000
+++ b/lisp/ChangeLog 2012-06-30 13:18:16 +0000
@@ -1,3 +1,11 @@
+2012-06-30 Michael Albinus <address@hidden>
+
+ * vc/vc-git.el (vc-git-registered): Use cache property
+ `git-registered'.
+ (vc-git-mode-line-string): Call `vc-working-revision' instead of
+ `vc-git-working-revision' in order to benefit from the cache.
+ (vc-git-root): Use cache property `git-root'.
+
2012-06-30 Dmitry Gutov <address@hidden>
* vc/vc-hooks.el (vc-before-save): Clear cache if file has been
=== modified file 'lisp/vc/vc-git.el'
--- a/lisp/vc/vc-git.el 2012-06-02 10:56:09 +0000
+++ b/lisp/vc/vc-git.el 2012-06-30 13:18:16 +0000
@@ -173,28 +173,31 @@
(defun vc-git-registered (file)
"Check whether FILE is registered with git."
- (let ((dir (vc-git-root file)))
- (when dir
- (with-temp-buffer
- (let* (process-file-side-effects
- ;; Do not use the `file-name-directory' here: git-ls-files
- ;; sometimes fails to return the correct status for relative
- ;; path specs.
- ;; See also: http://marc.info/?l=git&m=125787684318129&w=2
- (name (file-relative-name file dir))
- (str (ignore-errors
- (cd dir)
- (vc-git--out-ok "ls-files" "-c" "-z" "--" name)
- ;; If result is empty, use ls-tree to check for deleted
- ;; file.
- (when (eq (point-min) (point-max))
- (vc-git--out-ok "ls-tree" "--name-only" "-z" "HEAD"
- "--" name))
- (buffer-string))))
- (and str
- (> (length str) (length name))
- (string= (substring str 0 (1+ (length name)))
- (concat name "\0"))))))))
+ (or (vc-file-getprop file 'git-registered)
+ (vc-file-setprop
+ file 'git-registered
+ (let ((dir (vc-git-root file)))
+ (when dir
+ (with-temp-buffer
+ (let* (process-file-side-effects
+ ;; Do not use the `file-name-directory' here: git-ls-files
+ ;; sometimes fails to return the correct status for relative
+ ;; path specs.
+ ;; See also: http://marc.info/?l=git&m=125787684318129&w=2
+ (name (file-relative-name file dir))
+ (str (ignore-errors
+ (cd dir)
+ (vc-git--out-ok "ls-files" "-c" "-z" "--" name)
+ ;; If result is empty, use ls-tree to check for
deleted
+ ;; file.
+ (when (eq (point-min) (point-max))
+ (vc-git--out-ok "ls-tree" "--name-only" "-z" "HEAD"
+ "--" name))
+ (buffer-string))))
+ (and str
+ (> (length str) (length name))
+ (string= (substring str 0 (1+ (length name)))
+ (concat name "\0"))))))))))
(defun vc-git--state-code (code)
"Convert from a string to a added/deleted/modified state."
@@ -248,7 +251,7 @@
(defun vc-git-mode-line-string (file)
"Return a string for `vc-mode-line' to put in the mode line for FILE."
- (let* ((branch (vc-git-working-revision file))
+ (let* ((branch (vc-working-revision file))
(def-ml (vc-default-mode-line-string 'Git file))
(help-echo (get-text-property 0 'help-echo def-ml)))
(if (zerop (length branch))
@@ -959,7 +962,8 @@
(defun vc-git-extra-status-menu () vc-git-extra-menu-map)
(defun vc-git-root (file)
- (vc-find-root file ".git"))
+ (or (vc-file-getprop file 'git-root)
+ (vc-file-setprop file 'git-root (vc-find-root file ".git"))))
;; Derived from `lgrep'.
(defun vc-git-grep (regexp &optional files dir)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] /srv/bzr/emacs/trunk r108811: * vc/vc-git.el (vc-git-registered): Use cache property,
Michael Albinus <=