Subject: Re: bug#11757: Acknowledgement (24.1.50; vc-git calls `process-file' too many times)

From: Michael Albinus <[email-masked]>
Date: Wed, 04 Jul 2012 17:10:12 +0200

Dmitry Gutov <[email-masked]> writes:

> Was the file absent in the branch test after checkout? If not, this
> case is no different from the first.
> Basically, we need a scenario in which `vc-next-action' will need to
> call `vc-git-register' on a file that recently has been considered
> up-to-date.

If we assume, any command outside Emacs can happen which invalidates the
cached status of a file, we must clear all caches and recompute all
files state when vc-next-action is called. To the given cost.

In Tramp, I have similar problems with stale caches. Finally, I've added
timestamps to every cached value, and I use cheap tests to check whether
the cache is out of date. No idea, whether we want go this direction in
vc, too.

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

> The logic is rather complicated there, so I might easily be missing
> some examples.

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.

> -- Dmitry

Best regards, Michael.