GNU bug report logs -
#18535
tramp alters `vc-handled-backends'
Previous Next
Reported by: Emilio Lopes <eclig <at> gmx.net>
Date: Tue, 23 Sep 2014 10:55:02 UTC
Severity: normal
Merged with 18647
Found in version 24.4.50
Done: Stefan Monnier <monnier <at> iro.umontreal.ca>
Bug is archived. No further changes may be made.
Full log
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
`tramp-sh-handle-vc-registered' can permanently alter the value of
`vc-handled-backends' causing Emacs to stop recognizing version
controlled files as such. This happened to me a couple of times after
having pressed `C-g' while some `tramp' operation was apparently
hanging.
Here is a patch:
=== modified file 'lisp/ChangeLog'
--- lisp/ChangeLog 2014-09-16 13:36:04 +0000
+++ lisp/ChangeLog 2014-09-23 09:27:10 +0000
@@ -1,4 +1,9 @@
+2014-09-23 Emilio C. Lopes <eclig <at> gmx.net>
+
+ * net/tramp-sh.el (tramp-sh-handle-vc-registered): use `unwind-protect'
+ to avoid altering `vc-handled-backends' permanently.
+
2014-09-22 Kan-Ru Chen <kanru <at> kanru.info>
* window.el (fit-window-to-buffer): When counting buffer width,
count the whole visible buffer. Correctly convert the body-height
=== modified file 'lisp/net/tramp-sh.el'
--- lisp/net/tramp-sh.el 2014-09-08 15:52:04 +0000
+++ lisp/net/tramp-sh.el 2014-09-23 09:27:10 +0000
@@ -3456,30 +3456,33 @@
;; calls shall be answered from the file cache. We unset
;; `process-file-side-effects' and `remote-file-name-inhibit-cache'
;; in order to keep the cache.
- (let ((vc-handled-backends vc-handled-backends)
+ (let ((vc-handled-backends-saved vc-handled-backends)
remote-file-name-inhibit-cache process-file-side-effects)
;; Reduce `vc-handled-backends' in order to minimize process calls.
- (when (and (memq 'Bzr vc-handled-backends)
- (boundp 'vc-bzr-program)
- (not (with-tramp-connection-property v vc-bzr-program
- (tramp-find-executable
- v vc-bzr-program (tramp-get-remote-path v)))))
- (setq vc-handled-backends (delq 'Bzr vc-handled-backends)))
- (when (and (memq 'Git vc-handled-backends)
- (boundp 'vc-git-program)
- (not (with-tramp-connection-property v vc-git-program
- (tramp-find-executable
- v vc-git-program (tramp-get-remote-path v)))))
- (setq vc-handled-backends (delq 'Git vc-handled-backends)))
- (when (and (memq 'Hg vc-handled-backends)
- (boundp 'vc-hg-program)
- (not (with-tramp-connection-property v vc-hg-program
- (tramp-find-executable
- v vc-hg-program (tramp-get-remote-path v)))))
- (setq vc-handled-backends (delq 'Hg vc-handled-backends)))
- ;; Run.
- (ignore-errors
- (tramp-run-real-handler 'vc-registered (list file))))))))
+ (unwind-protect
+ (progn
+ (when (and (memq 'Bzr vc-handled-backends)
+ (boundp 'vc-bzr-program)
+ (not (with-tramp-connection-property v
vc-bzr-program
+ (tramp-find-executable
+ v vc-bzr-program
(tramp-get-remote-path v)))))
+ (setq vc-handled-backends (delq 'Bzr vc-handled-backends)))
+ (when (and (memq 'Git vc-handled-backends)
+ (boundp 'vc-git-program)
+ (not (with-tramp-connection-property v
vc-git-program
+ (tramp-find-executable
+ v vc-git-program
(tramp-get-remote-path v)))))
+ (setq vc-handled-backends (delq 'Git vc-handled-backends)))
+ (when (and (memq 'Hg vc-handled-backends)
+ (boundp 'vc-hg-program)
+ (not (with-tramp-connection-property v vc-hg-program
+ (tramp-find-executable
+ v vc-hg-program
(tramp-get-remote-path v)))))
+ (setq vc-handled-backends (delq 'Hg vc-handled-backends)))
+ ;; Run.
+ (ignore-errors
+ (tramp-run-real-handler 'vc-registered (list file))))
+ (setq vc-handled-backends vc-handled-backends-saved)))))))
;;;###tramp-autoload
(defun tramp-sh-file-name-handler (operation &rest args)
This bug report was last modified 10 years and 233 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.