Subject: bug#24126: vc-hg-state can be extremely slow

From: Dmitry Gutov <[email-masked]>
Date: Tue, 2 Aug 2016 19:19:30 +0300

On 08/02/2016 06:57 PM, Jonathan Kotta wrote:

> In the case of `vc-root-diff` at least, it's passing in a directory; the
> command is essentially `hg status -A ./`, and the CWD is indeed the repo
> root.  I did this by running `vc-root-diff` from a dired buffer visiting
> the repo root.

OK, thanks. The chain of calls looks like this:

   vc-hg-state("~/vc/mozilla-central/")
   vc-hg-registered("~/vc/mozilla-central/")
   apply(vc-hg-registered "~/vc/mozilla-central/")
   vc-call-backend(Hg registered "~/vc/mozilla-central/")
   vc-registered("~/vc/mozilla-central/")
   vc-backend("~/vc/mozilla-central/")
   vc-working-revision("~/vc/mozilla-central/")
   vc-root-diff(nil t)

Maybe vc-hg-registered shouldn't delegate to vc-hg-state, and call 'hg 
status' on its own without '-A'.