diff options
Diffstat (limited to 'lisp/vc-svn.el')
-rw-r--r-- | lisp/vc-svn.el | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/lisp/vc-svn.el b/lisp/vc-svn.el index de34fa847e2..b08765b89a3 100644 --- a/lisp/vc-svn.el +++ b/lisp/vc-svn.el @@ -114,12 +114,19 @@ 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") - ;; We can't find an `svn' executable. We could also deregister SVN. - (file-error nil)) - (vc-svn-parse-status t) - (eq 'SVN (vc-file-getprop file 'vc-backend))))) + (let ((status + (condition-case nil + ;; Ignore all errors. + (vc-svn-command t t 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)))) + (when (eq 0 status) + (vc-svn-parse-status t) + (eq 'SVN (vc-file-getprop file 'vc-backend))))))) (defun vc-svn-state (file &optional localp) "SVN-specific version of `vc-state'." |