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

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

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


From: Dmitry Gutov
Subject: bug#43464: 28.0.50; vc: Error calling vc-revert for repo root
Date: Mon, 5 Oct 2020 01:32:10 +0300
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0

On 24.09.2020 10:15, Andrii Kolomoiets wrote:

On 18.09.2020 18:45, Andrii Kolomoiets wrote:
BTW vc-revert is also works fine in Git repo when point is on
subdirectory.  So for the vc-git only reverting repo root is not
working.

That's an interesting observation.

And the most interest part of that observation is that I can't reproduce
it :)

Oh well. :-)

Please see attached patch which make it possible for vc-hg to revert
directory.

Could you explain both changes in that patch?

The idea is to make the 'vc-backend' function to return backend for
directory.  'vc-backend' function uses the 'vc-registered' function.
The change for vc-hg.el makes 'vc-hg-registered' return t for directory.
The change to vc.el makes the 'vc-register' function called on directory
to not error with "already registered" message.

Thanks.

Where is that vc-backend called from, in our scenario?

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'm not 100% sure about the original design, but vc-responsible-backend *does* work on directories.

Its downside is it doesn't cache the result to VC properties (hence it would be unwise to use it everywhere). But it's also an upside, because said properties are invalidated in a few strategic places like find-file-hook, and that never happens for directories (hence that cache will tend to get out of date, sooner or later).

And also: how does it change, or not change, the behavior of vc-revert
in backends that are not Git or Hg?

Looks like everybody is ready for reverting dirs.

bzr, mtn, svn - Should be fine reverting directory
dav - do nothing on vc-revert
rcs - reverting directory is added in c22b0a7da32360e34f6f0ff86a886c9028b3d863
sccs - reverting directory is added in e7290559824406d111d306069b36dde8ced847f9
src - reverting directory is supported initially 
1e81f6769013e1a0df9e10d7c5d0a3e3ca131143
cvs - passing directory to 'unedit' command should be fine

Very good.





reply via email to

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