Subject: Re: bug#63470: [PATCH] Use faster option for running vc-hg status

From: Spencer Baugh <[email-masked]>
Date: Fri, 12 May 2023 15:57:41 -0400

Eli Zaretskii <[email-masked]> writes:
>> From: Spencer Baugh <[email-masked]>
>> Date: Fri, 12 May 2023 15:28:43 -0400
>> 
>> As the comment says, this causes us to depend on Mercurial 4.2, which
>> was released in 2017.  However, in modern Mercurial, removing the
>> "re:" "-I" "." options provides a 10x-20x speedup (because it allows
>> the Rust implementation of "hg status" to be used), so it's certainly
>> worth losing this compatibility.
>
> I don't understand: what will happen to users of Mercurial < 4.2?

They will get an error message and the vc-dir buffer will fail to
update.

> And why cannot we detect the version and dispatch on that, instead of
> doing this unconditionally?

hg --version takes a quarter of a second on my machine, which itself
wipes out a lot of the performance benefit.  We could cache it, but it's
not clear to me how to do that correctly: there could be different hg
binaries in different directories, or over TRAMP, or other such things.

I could add a user option to revert to the old behavior, if you want.

(It would be nice if vc was available on ELPA, then maybe we could just
tell users of old mercurial versions to downgrade to an old version...)