changeset 101713:6bc8fe0c390a

(vc-svn-dir-status): Disable the vc-stay-local-p logic, it makes the makes the normal case too slow.
author Dan Nicolaescu <dann@ics.uci.edu>
date Sat, 31 Jan 2009 15:51:07 +0000
parents 60bf3fa883a8
children 64b82d02b6c2
files lisp/ChangeLog lisp/vc-svn.el
diffstat 2 files changed, 11 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ChangeLog	Sat Jan 31 14:34:05 2009 +0000
+++ b/lisp/ChangeLog	Sat Jan 31 15:51:07 2009 +0000
@@ -1,3 +1,8 @@
+2009-01-31  Dan Nicolaescu  <dann@ics.uci.edu>
+
+	* vc-svn.el (vc-svn-dir-status): Disable the vc-stay-local-p
+	logic, it makes the makes the normal case too slow.
+
 2009-01-31  Eli Zaretskii  <eliz@gnu.org>
 
 	* mail/unrmail.el (unrmail): Set coding-system of the old Rmail
--- a/lisp/vc-svn.el	Sat Jan 31 14:34:05 2009 +0000
+++ b/lisp/vc-svn.el	Sat Jan 31 15:51:07 2009 +0000
@@ -185,8 +185,12 @@
 CALLBACK is called as (CALLBACK RESULT BUFFER), where
 RESULT is a list of conses (FILE . STATE) for directory DIR."
   ;; FIXME should this rather be all the files in dir?
-  (let* ((local (vc-stay-local-p dir))
-	 (remote (or (not local) (eq local 'only-file))))
+  ;; FIXME: the vc-stay-local-p logic below is disabled, it ends up
+  ;; calling synchronously (vc-svn-registered DIR) => calling svn status -v DIR
+  ;; which is VERY SLOW for big trees and it makes emacs
+  ;; completely unresponsive during that time.
+  (let* ((local (and nil (vc-stay-local-p dir)))
+	 (remote (or t (not local) (eq local 'only-file))))
     (vc-svn-command (current-buffer) 'async nil "status"
 		    (if remote "-u"))
   (vc-exec-after