aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndré Spiegel1998-05-02 16:41:08 +0000
committerAndré Spiegel1998-05-02 16:41:08 +0000
commiteccceb78ec5fcb417f6818dc5afa63f68235a439 (patch)
treed14140c9991dd7dbfff0609a8e2d08c1c79124b5
parent34663a742b6403d54f18eb5f650e7f2413ee40a2 (diff)
downloademacs-eccceb78ec5fcb417f6818dc5afa63f68235a439.tar.gz
emacs-eccceb78ec5fcb417f6818dc5afa63f68235a439.zip
(vc-fetch-cvs-status): Don't specify DIR on the command line.
(vc-dired-hook): Optimized for CVS.
-rw-r--r--lisp/vc.el17
1 files changed, 12 insertions, 5 deletions
diff --git a/lisp/vc.el b/lisp/vc.el
index 17af1f8a023..c104f18a82c 100644
--- a/lisp/vc.el
+++ b/lisp/vc.el
@@ -5,7 +5,7 @@
5;; Author: Eric S. Raymond <esr@snark.thyrsus.com> 5;; Author: Eric S. Raymond <esr@snark.thyrsus.com>
6;; Maintainer: Andre Spiegel <spiegel@inf.fu-berlin.de> 6;; Maintainer: Andre Spiegel <spiegel@inf.fu-berlin.de>
7 7
8;; $Id: vc.el,v 1.223 1998/04/15 10:13:07 spiegel Exp done $ 8;; $Id: vc.el,v 1.224 1998/04/20 01:51:37 done Exp spiegel $
9 9
10;; This file is part of GNU Emacs. 10;; This file is part of GNU Emacs.
11 11
@@ -1644,7 +1644,9 @@ There is a special command, `*l', to mark all files currently locked."
1644 1644
1645(defun vc-fetch-cvs-status (dir) 1645(defun vc-fetch-cvs-status (dir)
1646 (let ((default-directory dir)) 1646 (let ((default-directory dir))
1647 (vc-do-command "*vc-info*" 0 "cvs" nil nil "status" dir) 1647 ;; Don't specify DIR in this command, the default-directory is
1648 ;; enough. Otherwise it might fail with remote repositories.
1649 (vc-do-command "*vc-info*" 0 "cvs" nil nil "status")
1648 (save-excursion 1650 (save-excursion
1649 (set-buffer (get-buffer "*vc-info*")) 1651 (set-buffer (get-buffer "*vc-info*"))
1650 (goto-char (point-min)) 1652 (goto-char (point-min))
@@ -1699,14 +1701,17 @@ There is a special command, `*l', to mark all files currently locked."
1699 ;; Called by dired after any portion of a vc-dired buffer has been read in. 1701 ;; Called by dired after any portion of a vc-dired buffer has been read in.
1700 ;; Reformat the listing according to version control. 1702 ;; Reformat the listing according to version control.
1701 (message "Getting version information... ") 1703 (message "Getting version information... ")
1702 (let (subdir filename (buffer-read-only nil)) 1704 (let (subdir filename (buffer-read-only nil) cvs-dir)
1703 (goto-char (point-min)) 1705 (goto-char (point-min))
1704 (while (not (eq (point) (point-max))) 1706 (while (not (eq (point) (point-max)))
1705 (cond 1707 (cond
1706 ;; subdir header line 1708 ;; subdir header line
1707 ((setq subdir (dired-get-subdir)) 1709 ((setq subdir (dired-get-subdir))
1708 (if (file-directory-p (concat subdir "/CVS")) 1710 (if (file-directory-p (concat subdir "/CVS"))
1709 (vc-fetch-cvs-status (file-name-as-directory subdir))) 1711 (progn
1712 (vc-fetch-cvs-status (file-name-as-directory subdir))
1713 (setq cvs-dir t))
1714 (setq cvs-dir nil))
1710 (forward-line 1) 1715 (forward-line 1)
1711 ;; erase (but don't remove) the "total" line 1716 ;; erase (but don't remove) the "total" line
1712 (let ((start (point))) 1717 (let ((start (point)))
@@ -1723,7 +1728,9 @@ There is a special command, `*l', to mark all files currently locked."
1723 (dired-kill-line) 1728 (dired-kill-line)
1724 (vc-dired-reformat-line nil) 1729 (vc-dired-reformat-line nil)
1725 (forward-line 1))) 1730 (forward-line 1)))
1726 ((vc-backend filename) 1731 ((if cvs-dir
1732 (eq (vc-file-getprop filename 'vc-backend) 'CVS)
1733 (vc-backend filename))
1727 (vc-dired-reformat-line (vc-dired-state-info filename)) 1734 (vc-dired-reformat-line (vc-dired-state-info filename))
1728 (forward-line 1)) 1735 (forward-line 1))
1729 (t 1736 (t