emacs-devel
[Top][All Lists]
Advanced

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

tramp-sh-handle-vc-registered (was: vc with svn and git)


From: Stefan Monnier
Subject: tramp-sh-handle-vc-registered (was: vc with svn and git)
Date: Sat, 25 Feb 2017 08:36:46 -0500
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/26.0.50 (gnu/linux)

>> I don't know the situation with tarballs, but for Tramp it is
>> implemented and useful. Tramp's implementation uses some caching indeed
>> for performance improvement. See the comment in tramp-sh.el, heading
>> `tramp-sh-handle-vc-registered'.
> That's odd.  Why doesn't it rely on the file-process and
> start-file-process handlers?

OK, I now looked at the code and I see why it's used.  I guess the
caching part of tramp-sh-handle-vc-registered is not indispensable
(i.e. there must be a way to make the generic caching mechanism work
well enough for vc-registered), but batching all requests into a single
one is indeed pretty much impossible without some ad-hoc hack like this
one (which relies on the property that vc-registered doesn't have too
many side-effects, so you can do a "dry run" just to see what it would
do).

The only way I can see to get a similar result without ad-hoc hacks
would be to introduce async file operations and then make vc-registered
use them (since IIUC the benefit of tramp-sh-handle-vc-registered's
batching is to avoid paying the latency N times).  So vc-registered
would start by firing all file-exists-p tests (an other operations)
asynchronously and then collect their answers.


        Stefan




reply via email to

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