diff options
| author | Eric S. Raymond | 2014-12-01 10:03:17 -0500 |
|---|---|---|
| committer | Eric S. Raymond | 2014-12-01 10:04:10 -0500 |
| commit | c1083725258be6b4e7ae760a06368280fdf05302 (patch) | |
| tree | 09ac1fc3c2a128257a43cedd3de0d87d7e1fe14c | |
| parent | f0e8c1eac226641ea8acab9e0f47ce3541803f0d (diff) | |
| download | emacs-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.el | 15 |
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. |
| 204 | CALLBACK is called as (CALLBACK RESULT BUFFER), where | 203 | CALLBACK is called as (CALLBACK RESULT BUFFER), where |
| 205 | RESULT is a list of conses (FILE . STATE) for directory DIR." | 204 | RESULT 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) |