Subject: bug#43464: 28.0.50; vc: Error calling vc-revert for repo root

From: Andrii Kolomoiets <[email-masked]>
Date: Wed, 07 Oct 2020 16:16:13 +0300

Dmitry Gutov <[email-masked]> writes:

> On 05.10.2020 09:02, Andrii Kolomoiets wrote:
>> Dmitry Gutov <[email-masked]> writes:
>> 
>>> Where is that vc-backend called from, in our scenario?
>> It's called from 'vc-call'.  The 'vc-revert-file' used it twice
>> to call the 'make-version-backups-p' and the 'revert' backend functions.
>
> Then a change in vc-revert-file could be sufficient.

Can you please advice me what this change should look like?  Get rid of
calling 'vc-call'?  In this case the function 'vc-version-backup-file'
must be changed as well.

>>> Could we make do with changing that code to use vc-responsible-backend
>>> instead of vc-backend instead? If it's not a function called
>>> frequently.
>> I went a little different way and made the 'vc-backend' return
>> correct
>> backend for directories.  In case you missed it somehow here is the link
>> to the message:
>> https://lists.gnu.org/archive/html/bug-gnu-emacs/2020-09/msg02508.html
>
> Like I explained, it will create a cache entry that is never invalidated.

In what way VC backend for directory could be changed? Like 'rm -rf .hg
&& git init'?  We can make the 'vc-backend' function to ignore cached
backend for directories.  Though I think it's not efficient.