all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Dmitry Gutov <dgutov@yandex.ru>
To: Lars Ingebrigtsen <larsi@gnus.org>
Cc: Glenn Morris <rgm@gnu.org>, sds@gnu.org, 42966@debbugs.gnu.org
Subject: bug#42966: 28.0.50; vc-dir: wrong backend
Date: Sat, 17 Oct 2020 23:01:09 +0300	[thread overview]
Message-ID: <c9d37b5a-b271-19ea-f3f7-b202afab5883@yandex.ru> (raw)
In-Reply-To: <87pn5h1j4b.fsf@gnus.org>

On 17.10.2020 09:06, Lars Ingebrigtsen wrote:
> Dmitry Gutov <dgutov@yandex.ru> writes:
> 
>> On 16.10.2020 18:35, Glenn Morris wrote:
>>> See eghttps://debbugs.gnu.org/3807#21  from 11 years ago.
>>
>> Stefan's suggestion is pretty sensible.
>>
>> Though it'll require a rework of the corresponding VC backend
>> actions. Not sure if it's possible to do in a backward-compatible
>> fashion.
> 
> (The suggestion is to recurse upwards and ask each backend "are you
> responsible for this directory, then?")

Or, more low-level, if we find that every backend follows the pattern of 
aliasing vc-xyz-responsible-p to vc-xyz-root, and calling vc-find-root 
in the latter's implementation, we could opt for creating a backend 
action that returns the "witness" file name (e.g. ".git"), and then 
construct a regexp from all witness file names, and pass it to 
'directory-files' as MATCH. Depending on the cost of certain things, 
this could end up being much faster, both locally and remotely.

> That makes sense, but it's just a performance hack, isn't it?  The
> result should be the same as the less invasive "loop over all the
> backends and collect the most specific one".

Pretty much. Except it should naturally limit the traversal up the 
directory tree, so it feels like a good architecture, not just a "hack".

The backward compatibility headache might not be worth it, though.





  reply	other threads:[~2020-10-17 20:01 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-08-21 15:15 bug#42966: 28.0.50; vc-dir: wrong backend Sam Steingold
2020-10-16  8:55 ` Lars Ingebrigtsen
2020-10-16 12:44   ` Dmitry Gutov
2020-10-16 14:41     ` Lars Ingebrigtsen
2020-10-16 14:44       ` Dmitry Gutov
2020-10-17  7:02         ` Lars Ingebrigtsen
2020-10-17  7:13         ` Lars Ingebrigtsen
2020-10-17  7:19           ` Lars Ingebrigtsen
2020-10-17 20:41             ` Dmitry Gutov
2020-10-18  8:26               ` Lars Ingebrigtsen
2020-10-17 20:44           ` Dmitry Gutov
2020-10-18  7:38             ` Michael Albinus
2020-10-23 23:53               ` Dmitry Gutov
2020-10-24 13:41                 ` Michael Albinus
2020-10-24 19:42                   ` Dmitry Gutov
2020-10-25 17:49                     ` Michael Albinus
2020-10-26 14:29                       ` Dmitry Gutov
2020-10-26 15:17                         ` Michael Albinus
2020-10-26 20:12                           ` bug#42966: (no subject) Lars Ingebrigtsen
2020-10-26 20:13                           ` Lars Ingebrigtsen
2020-10-26 20:55                             ` bug#42966: Dmitry Gutov
2020-10-26 21:02                               ` bug#42966: Lars Ingebrigtsen
2020-10-26 21:44                                 ` bug#42966: Dmitry Gutov
2020-10-26 21:11                           ` bug#42966: 28.0.50; vc-dir: wrong backend Dmitry Gutov
2020-10-18  8:32             ` Lars Ingebrigtsen
2020-10-16 15:35 ` Glenn Morris
2020-10-16 18:19   ` Dmitry Gutov
2020-10-17  6:06     ` Lars Ingebrigtsen
2020-10-17 20:01       ` Dmitry Gutov [this message]
2020-10-18  8:31         ` Lars Ingebrigtsen
2020-10-26 21:54         ` Glenn Morris
2020-10-26 21:58           ` Lars Ingebrigtsen
2020-10-26 22:14             ` Dmitry Gutov
2020-10-26 22:11           ` Dmitry Gutov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=c9d37b5a-b271-19ea-f3f7-b202afab5883@yandex.ru \
    --to=dgutov@yandex.ru \
    --cc=42966@debbugs.gnu.org \
    --cc=larsi@gnus.org \
    --cc=rgm@gnu.org \
    --cc=sds@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.