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

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

bug#11757: Acknowledgement (24.1.50; vc-git calls `process-file' too man


From: Dmitry Gutov
Subject: bug#11757: Acknowledgement (24.1.50; vc-git calls `process-file' too many times)
Date: Fri, 06 Jul 2012 19:55:54 +0400
User-agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:13.0) Gecko/20120614 Thunderbird/13.0.1

On 06.07.2012 17:44, Michael Albinus wrote:
Dmitry Gutov <address@hidden> writes:

If we assume that there are no dangerous vc commands outside Emacs, we
wouldn't have a problem.

In this case, the behavior of the first patch I posted here should be
acceptable, right? It's simpler, has pretty much the same effect, and
should be a tiny bit faster.

That I don't know. Both patches do almost what we expect, and having a
cached value for `vc-registered' sounds more performant when applied
often enough.

With the attached patch, `vc-git-registered' is usually called only once during the lifetime of a buffer.

For caching to be an improvement, 'git-registered value has to be invalidated separately from 'vc-backend, yet less often than `vc-git-state' is called.

Yes. I don't know, whether we will be able to handle any surprise when
using caches. There will always be a scenario which lets fail a given
algorithm. I fear.

Sure, but I'm just asking for one scenario that works better with
explicitly caching 'git-registered, instead of not calling it in
vc-git-state'.
If `vc-git-state' doesn't call `vc-git-registered' (just assumes it's
t), then `vc-registered' is the latter's only client, and so its
return value is implicitly cached in 'vc-backend property.

Maybe. Could you show a patch? (Please with ChangeLog entry, I would
commit if it looks good).

* vc-git.el (vc-git-state): Don't call `vc-git-registered', assume it's always t.
(vc-git-registered): Remove caching, the function is only called once.

Thank you,

--Dmitry

Attachment: vc-git-registered.diff
Description: Text document


reply via email to

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