Arseniy Alekseyev <aalekseyev@janestreet.com> [Wed, 11 Jan 2023 16:16:06 +0000] rev 49890
typing: use python3-style type annotation
Arseniy Alekseyev <aalekseyev@janestreet.com> [Wed, 04 Jan 2023 17:14:33 +0000] rev 49889
merge: cache the fs checks made during [_checkunknownfiles]
this ~halves the number of lstat calls made when updating
from rev(-1) to a revision with lots of files
Arseniy Alekseyev <aalekseyev@janestreet.com> [Wed, 04 Jan 2023 17:03:15 +0000] rev 49888
merge: disable the whole filesystem access loop if [_realfs] is false
This makes it clearer that [auditeddir] is only relevant for
[_realfs] checkers, and makes the non-realfs checkers more performant.
Arseniy Alekseyev <aalekseyev@janestreet.com> [Wed, 04 Jan 2023 16:48:32 +0000] rev 49887
merge: short-circuit the _checkfs loop upon getting ENOENT
This reduces the number of [lstat] calls when updating from rev(-1) to
a rev with lots of files by a factor of several: for path foo/bar/baz/quux.txt
without this patch we're lstatting:
foo
foo/bar
foo/bar/baz
foo/bar/baz/quux.txt
and with this patch:
foo
foo/bar/baz/quux.txt
Arseniy Alekseyev <aalekseyev@janestreet.com> [Wed, 04 Jan 2023 19:13:41 +0000] rev 49886
merge: don't pay for pathconflicts if there are none
Arseniy Alekseyev <aalekseyev@janestreet.com> [Fri, 06 Jan 2023 16:27:31 +0000] rev 49885
pathauditor: no need to normcase the paths
The only thing normed paths are used is the key of the caching sets,
so the only change of behavior will be that the checks will be repeated
for paths that differ by case.
If anything, it seems correct for the check to be repeated, in case
that actually affects semantics, but the main reasoning is simplifying
the code and making it a bit faster.
It looks like the code originally comes from commit [081e795c60e0]:
it looks like that commit tried to get rid of the existing norming,
but presumably did this overly cautiously, preserving it for the
cache keys, even though it was pointless even then.
Arseniy Alekseyev <aalekseyev@janestreet.com> [Wed, 04 Jan 2023 18:42:20 +0000] rev 49884
pathutil: slightly faster path audit in the common case
Arseniy Alekseyev <aalekseyev@janestreet.com> [Fri, 06 Jan 2023 16:01:31 +0000] rev 49883
debug: add a config to abort update early
This is useful to benchmark the parts of [hg update] that come
before the parallel worker.
Anton Shestakov <av6@dwimlabs.net> [Wed, 11 Jan 2023 16:51:37 +0400] rev 49882
dirstate: add missing methods and kwargs to idirstate interface
Anton Shestakov <av6@dwimlabs.net> [Thu, 05 Jan 2023 19:52:00 +0400] rev 49881
dirstate: swap pathto() and get_entry() in idirstate
This way the order of methods in dirstate and idirstate classes is the same.
Just to make it easier to use diff tools to compare the two classes.