bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#42966: 28.0.50; vc-dir: wrong backend


From: Dmitry Gutov
Subject: bug#42966: 28.0.50; vc-dir: wrong backend
Date: Tue, 27 Oct 2020 00:11:07 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0

On 26.10.2020 23:54, Glenn Morris wrote:
Dmitry Gutov wrote:

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".

Indeed, it just seems like the Right Thing to Do, not a hack.
Not having been paying attention, I was surprised to see the adopted solution
goes for "loop over every VC backend, and every directory up the tree,
then filter the results", rather than "walk up the directory tree,
stopping when a backend claims responsibility".

I didn't want to insist on it because upon some thinking it seemed to me that the remote case might be the only problematic one. And one-traversal-per-backend might be more optimizable by Tramp (e.g. via a mini-program) than one-check-per-directory-level. But perhaps the latter could be optimized using a file handler or an advice just as well.

I would think efficiency matters in such a frequent operation.
As a (completely unscientific) data point, my first single core
bootstrap build after this change took about 5% longer than before
(22m5s v 21m4s). But of course a single measurement means nothing.

Was that with a rotating disk?

A few more experiments should help, to establish whether that was a fluke or not.





reply via email to

[Prev in Thread] Current Thread [Next in Thread]