aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEric S. Raymond2014-12-01 10:03:17 -0500
committerEric S. Raymond2014-12-01 10:04:10 -0500
commitc1083725258be6b4e7ae760a06368280fdf05302 (patch)
tree09ac1fc3c2a128257a43cedd3de0d87d7e1fe14c
parentf0e8c1eac226641ea8acab9e0f47ce3541803f0d (diff)
downloademacs-c1083725258be6b4e7ae760a06368280fdf05302.tar.gz
emacs-c1083725258be6b4e7ae760a06368280fdf05302.zip
Remove stay-local support in svn back end, because...
...status -v is so slow that it's unusable.
-rw-r--r--lisp/vc/vc-svn.el15
1 files changed, 3 insertions, 12 deletions
diff --git a/lisp/vc/vc-svn.el b/lisp/vc/vc-svn.el
index 0479519bde9..4381c8a8a15 100644
--- a/lisp/vc/vc-svn.el
+++ b/lisp/vc/vc-svn.el
@@ -156,7 +156,6 @@ If you want to force an empty list of arguments, use t."
156(defun vc-svn-state (file &optional localp) 156(defun vc-svn-state (file &optional localp)
157 "SVN-specific version of `vc-state'." 157 "SVN-specific version of `vc-state'."
158 (let (process-file-side-effects) 158 (let (process-file-side-effects)
159 (setq localp (or localp (vc-stay-local-p file 'SVN)))
160 (with-temp-buffer 159 (with-temp-buffer
161 (cd (file-name-directory file)) 160 (cd (file-name-directory file))
162 (vc-svn-command t 0 file "status" (if localp "-v" "-u")) 161 (vc-svn-command t 0 file "status" (if localp "-v" "-u"))
@@ -199,21 +198,13 @@ If you want to force an empty list of arguments, use t."
199;; -dir-status called from vc-dir, which loads vc, which loads vc-dispatcher. 198;; -dir-status called from vc-dir, which loads vc, which loads vc-dispatcher.
200(declare-function vc-exec-after "vc-dispatcher" (code)) 199(declare-function vc-exec-after "vc-dispatcher" (code))
201 200
202(defun vc-svn-dir-status (dir callback) 201(defun vc-svn-dir-status (_dir callback)
203 "Run 'svn status' for DIR and update BUFFER via CALLBACK. 202 "Run 'svn status' for DIR and update BUFFER via CALLBACK.
204CALLBACK is called as (CALLBACK RESULT BUFFER), where 203CALLBACK is called as (CALLBACK RESULT BUFFER), where
205RESULT is a list of conses (FILE . STATE) for directory DIR." 204RESULT is a list of conses (FILE . STATE) for directory DIR."
206 ;; FIXME should this rather be all the files in dir? 205 ;; FIXME should this rather be all the files in dir?
207 ;; FIXME: the vc-stay-local-p logic below is disabled, it ends up 206 (vc-svn-command (current-buffer) 'async nil "status" "-u")
208 ;; calling synchronously (vc-svn-registered DIR) => calling svn status -v DIR 207 (vc-run-delayed (vc-svn-after-dir-status callback)))
209 ;; which is VERY SLOW for big trees and it makes emacs
210 ;; completely unresponsive during that time.
211 (let* ((local (and nil (vc-stay-local-p dir 'SVN)))
212 (remote (or t (not local) (eq local 'only-file))))
213 (vc-svn-command (current-buffer) 'async nil "status"
214 (if remote "-u"))
215 (vc-run-delayed
216 (vc-svn-after-dir-status callback remote))))
217 208
218(defun vc-svn-dir-status-files (_dir files _default-state callback) 209(defun vc-svn-dir-status-files (_dir files _default-state callback)
219 (apply 'vc-svn-command (current-buffer) 'async nil "status" files) 210 (apply 'vc-svn-command (current-buffer) 'async nil "status" files)