GNU bug report logs -
#23436
[PATCH] Use the true name of a file to determine responsible vc.
Previous Next
Reported by: Hong Xu <hong <at> topbug.net>
Date: Tue, 3 May 2016 21:34:01 UTC
Severity: normal
Tags: patch
Done: Eli Zaretskii <eliz <at> gnu.org>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
Your bug report
#23436: [PATCH] Use the true name of a file to determine responsible vc.
which was filed against the emacs package, has been closed.
The explanation is attached below, along with your original report.
If you require more details, please reply to 23436 <at> debbugs.gnu.org.
--
23436: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=23436
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
> From: Hong Xu <hong <at> topbug.net>
> Cc: dgutov <at> yandex.ru, 23436 <at> debbugs.gnu.org
> Date: Fri, 04 Nov 2016 00:46:05 -0700
>
> On 2016-11-01 Tue 11:47 GMT-0700, Eli Zaretskii <eliz <at> gnu.org> wrote:
>
> >> From: Hong Xu <hong <at> topbug.net>
> >> Cc: dgutov <at> yandex.ru, 23436 <at> debbugs.gnu.org
> >> Date: Mon, 31 Oct 2016 12:38:42 -0700
> >>
> >> On 2016-10-31 Mon 08:43 GMT-0700, Eli Zaretskii <eliz <at> gnu.org> wrote:
> >> >
> >> > The node "Truenames" sounds like a good place.
> >>
> >> Added in the new patch now (along with the change of the previous version).
> >
> > LGTM, thanks.
>
> Can we apply the patch if it is good enough? Thanks.
Pushed now.
Please note that I generally wait for a week or so since the last
comment before pushing changes, to let people enough time to comment
or object.
[Message part 3 (message/rfc822, inline)]
In many cases, e.g., a symbolic link to a directory inside a vc tracked
directory, vc-responsible-backend would fail to know the true backend.
---
There is probably a better fix than this... Feel free to do so.
---
lisp/vc/vc.el | 15 ++++++++-------
1 file changed, 8 insertions(+), 7 deletions(-)
diff --git a/lisp/vc/vc.el b/lisp/vc/vc.el
index 25b41e34e645..1b060b4d1374 100644
--- a/lisp/vc/vc.el
+++ b/lisp/vc/vc.el
@@ -960,14 +960,15 @@ If FILE is already registered, return the
backend of FILE. If FILE is not registered, then the
first backend in `vc-handled-backends' that declares itself
responsible for FILE is returned."
- (or (and (not (file-directory-p file)) (vc-backend file))
+ (let ((file-path (file-truename file)))
+ (or (and (not (file-directory-p file-path)) (vc-backend file-path))
(catch 'found
- ;; First try: find a responsible backend. If this is for registration,
- ;; it must be a backend under which FILE is not yet registered.
- (dolist (backend vc-handled-backends)
- (and (vc-call-backend backend 'responsible-p file)
- (throw 'found backend))))
- (error "No VC backend is responsible for %s" file)))
+ ;; First try: find a responsible backend. If this is for registration,
+ ;; it must be a backend under which FILE is not yet registered.
+ (dolist (backend vc-handled-backends)
+ (and (vc-call-backend backend 'responsible-p file-path)
+ (throw 'found backend))))
+ (error "No VC backend is responsible for %s" file-path))))
(defun vc-expand-dirs (file-or-dir-list backend)
"Expands directories in a file list specification.
--
2.8.2
This bug report was last modified 8 years and 204 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.