Mercurial > emacs
comparison lisp/vc.el @ 87512:4146f1cc135e
* vc.el (vc-dired-hook): Speed tuning. Replace a vc-backend call
with vc-state.
author | Eric S. Raymond <esr@snark.thyrsus.com> |
---|---|
date | Tue, 01 Jan 2008 11:17:37 +0000 |
parents | de46129c1767 |
children | 3df0bed5b17a c938ab6810a4 |
comparison
equal
deleted
inserted
replaced
87511:b8ae06eabc33 | 87512:4146f1cc135e |
---|---|
2391 ((string-match "\\`\\.\\.?\\'" (file-name-nondirectory filename)) | 2391 ((string-match "\\`\\.\\.?\\'" (file-name-nondirectory filename)) |
2392 (dired-kill-line)) | 2392 (dired-kill-line)) |
2393 (t | 2393 (t |
2394 (vc-dired-reformat-line nil) | 2394 (vc-dired-reformat-line nil) |
2395 (forward-line 1)))) | 2395 (forward-line 1)))) |
2396 ;; try to head off calling the expensive state query - | 2396 ;; Try to head off calling the expensive state query - |
2397 ;; ignore object files, TeX intermediate files, and so forth. | 2397 ;; ignore object files, TeX intermediate files, and so forth. |
2398 ((vc-dired-ignorable-p filename) | 2398 ((vc-dired-ignorable-p filename) |
2399 (dired-kill-line)) | 2399 (dired-kill-line)) |
2400 ;; ordinary file -- call the (possibly expensive) state query | 2400 ;; Ordinary file -- call the (possibly expensive) state query |
2401 (t | 2401 ;; |
2402 (let ((backend (vc-backend filename))) | 2402 ;; First case: unregistered or unknown. (Unknown shouldn't happen here) |
2403 (cond | 2403 ((member (vc-state filename) '(nil unregistered)) |
2404 ;; Not registered | 2404 (if vc-dired-terse-mode |
2405 ((not backend) | 2405 (dired-kill-line) |
2406 (if vc-dired-terse-mode | 2406 (vc-dired-reformat-line "?") |
2407 (dired-kill-line) | 2407 (forward-line 1))) |
2408 (vc-dired-reformat-line "?") | 2408 ;; Either we're in non-terse mode or it's out of date |
2409 (forward-line 1))) | 2409 ((not (and vc-dired-terse-mode (vc-up-to-date-p filename))) |
2410 ;; Either we're in non-terse mode or it's out of date | 2410 (vc-dired-reformat-line (vc-call dired-state-info filename)) |
2411 ((not (and vc-dired-terse-mode (vc-up-to-date-p filename))) | 2411 (forward-line 1)) |
2412 (vc-dired-reformat-line (vc-call dired-state-info filename)) | 2412 ;; Remaining cases are under version control but uninteresting |
2413 (forward-line 1)) | 2413 (t |
2414 ;; Remaining cases are under version control but uninteresting | 2414 (dired-kill-line)))) |
2415 (t | |
2416 (dired-kill-line))))))) | |
2417 ;; any other line | 2415 ;; any other line |
2418 (t (forward-line 1)))) | 2416 (t (forward-line 1)))) |
2419 (vc-dired-purge)) | 2417 (vc-dired-purge)) |
2420 (message "Getting version information... done") | 2418 (message "Getting version information... done") |
2421 (save-restriction | 2419 (save-restriction |