]> git.eshelyaron.com Git - emacs.git/commitdiff
(vc-svn-registered): Fix problem of visiting non-writable
authorBill Wohler <wohler@newt.com>
Tue, 13 Dec 2005 00:48:04 +0000 (00:48 +0000)
committerBill Wohler <wohler@newt.com>
Tue, 13 Dec 2005 00:48:04 +0000 (00:48 +0000)
Subversion-controlled files by saving window configuration before
calling vc-do-command. vc-do-command calls pop-to-buffer on error
which is unexpected during registration.

lisp/ChangeLog
lisp/vc-svn.el

index 4790e1f341c02b6013af1805b2427540246706de..c24c6440d88aeb50e5f8fdb39ddb232793df5007 100644 (file)
@@ -1,8 +1,14 @@
+2005-12-12  Bill Wohler  <wohler@newt.com>
+
+       * vc-svn.el (vc-svn-registered): Fix problem of visiting
+       non-writable Subversion-controlled files by saving window
+       configuration before calling vc-do-command. vc-do-command calls
+       pop-to-buffer on error which is unexpected during registration.
+
 2005-12-12  Jay Belanger  <belanger@truman.edu>
 
        * calc/README: Update the summary of changes.
 
-
 2005-12-12  Stefan Monnier  <monnier@iro.umontreal.ca>
 
        * descr-text.el (describe-char): Rework last fix to solve the problem
index 8480d61c843b376ea00e1b6c32144b203a0ae29c..cf822406384be0e973b2dd70a6122f3c5bcaf526 100644 (file)
@@ -114,13 +114,18 @@ This is only meaningful if you don't use the implicit checkout model
                                           (file-name-directory file)))
     (with-temp-buffer
       (cd (file-name-directory file))
-      (condition-case nil
-         (vc-svn-command t 0 file "status" "-v")
-       ;; Some problem happened.  E.g. We can't find an `svn' executable.
-        ;; We used to only catch `file-error' but when the process is run on
-        ;; a remote host via Tramp, the error is only reported via the
-        ;; exit status which is turned into an `error' by vc-do-command.
-       (error nil))
+        (condition-case nil
+            ;; Save configuration since vc-do-command calls pop-to-buffer on
+            ;; error (such as visiting a Subversion-controlled file that you
+            ;; don't have permission to edit). This causes later problems
+            ;; during registration.
+            (save-window-excursion
+              (vc-svn-command t 0 file "status" "-v"))
+          ;; Some problem happened.  E.g. We can't find an `svn' executable.
+          ;; We used to only catch `file-error' but when the process is run on
+          ;; a remote host via Tramp, the error is only reported via the
+          ;; exit status which is turned into an `error' by vc-do-command.
+          (error nil))
       (vc-svn-parse-status t)
       (eq 'SVN (vc-file-getprop file 'vc-backend)))))