Mercurial > emacs
changeset 87434:4d223562bbfa
* vc.el (vc-dired-ignorable-p, vc-dired-hook): Speed optimization;
use completion-ignored-extensions to detect files that should be
ignorted in VC-Dired listings, heading off lots of expensive calls
to (vc-state).
author | Eric S. Raymond <esr@snark.thyrsus.com> |
---|---|
date | Thu, 27 Dec 2007 14:41:44 +0000 |
parents | 410e13519acb |
children | 13951469ac3a |
files | lisp/ChangeLog lisp/vc.el |
diffstat | 2 files changed, 24 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/ChangeLog Thu Dec 27 14:00:42 2007 +0000 +++ b/lisp/ChangeLog Thu Dec 27 14:41:44 2007 +0000 @@ -1,3 +1,10 @@ +2007-12-27 Eric S. Raymond <esr@snark.thyrsus.com> + + * vc.el (vc-dired-ignorable-p, vc-dired-hook): Speed optimization; + use completion-ignored-extensions to detect files that should be + ignorted in VC-Dired listings, heading off lots of expensive calls + to (vc-state). + 2007-12-27 Vinicius Jose Latorre <viniciusjl@ig.com.br> * ps-print.el (ps-mark-active-p): Fun returned back. @@ -6,8 +13,8 @@ 2007-12-27 Eric S. Raymond <esr@snark.thyrsus.com> - * (vc.el, vc-sccs.el, vc-rcs.el, vc-cs.el, vc-mcvs.el): Put - machinery in place to support editing of change comments + * vc.el, vc-sccs.el, vc-rcs.el, vc-cs.el, vc-mcvs.el: Put + new machinery in place to support editing of change comments with 'e' in a log-view buffer. Not documented yet as this only works for SCCS, RCS, and maybe CVS if you have admin privileges. When we have backend support for Subversion and
--- a/lisp/vc.el Thu Dec 27 14:00:42 2007 +0000 +++ b/lisp/vc.el Thu Dec 27 14:41:44 2007 +0000 @@ -2327,6 +2327,16 @@ (replace-match (substring (concat vc-info " ") 0 10) t t nil 1))) +(defun vc-dired-ignorable-p (filename) + "Should FILENAME be ignored in VC-Dired listings?" + (catch t + (dolist (ignorable completion-ignored-extensions) + (let ((ext (substring filename + (- (length filename) + (length ignorable))))) + (if (string= ignorable ext) (throw t t)))) + nil)) + (defun vc-dired-hook () "Reformat the listing according to version control. Called by dired after any portion of a vc-dired buffer has been read in." @@ -2372,7 +2382,11 @@ (t (vc-dired-reformat-line nil) (forward-line 1)))) - ;; ordinary file + ;; try to head off calling the expensive state query - + ;; ignore object files, TeX intermediate files, and so forth. + ((vc-dired-ignorable-p filename) + (dired-kill-line)) + ;; ordinary file -- call the (possibly expensive) state query ((and (vc-backend filename) (not (and vc-dired-terse-mode (vc-up-to-date-p filename))))