[Request] [+ ] D8520: status: also support for `traversedir` callback in the Rust fast-path
Alphare (Raphaël Gomès)
phabricator at mercurial-scm.org
Tue May 12 11:51:19 UTC 2020
Alphare created this revision.
Herald added a reviewer: hg-reviewers.
Herald added a subscriber: mercurial-patches.
REVISION SUMMARY
Repeating the performance numbers from the `hg-core` change:
Running `hg clean/purge` on Netbeans' repo (100k files):
| No-op | 30% unknown
--------------------------
Rust | 1.0s | 1.67s
C | 2.0s | 2.87s
REPOSITORY
rHG Mercurial
BRANCH
default
REVISION DETAIL
https://phab.mercurial-scm.org/D8520
AFFECTED FILES
mercurial/dirstate.py
CHANGE DETAILS
diff --git a/mercurial/dirstate.py b/mercurial/dirstate.py
--- a/mercurial/dirstate.py
+++ b/mercurial/dirstate.py
@@ -1107,6 +1107,7 @@
unknown,
warnings,
bad,
+ traversed,
) = rustmod.status(
self._map._rustmap,
matcher,
@@ -1117,7 +1118,13 @@
bool(list_clean),
bool(list_ignored),
bool(list_unknown),
+ bool(matcher.traversedir),
)
+
+ if matcher.traversedir:
+ for dir in traversed:
+ matcher.traversedir(dir)
+
if self._ui.warn:
for item in warnings:
if isinstance(item, tuple):
@@ -1193,8 +1200,6 @@
use_rust = False
elif sparse.enabled:
use_rust = False
- elif match.traversedir is not None:
- use_rust = False
elif not isinstance(match, allowed_matchers):
# Some matchers have yet to be implemented
use_rust = False
To: Alphare, #hg-reviewers
Cc: mercurial-patches, mercurial-devel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mercurial-scm.org/pipermail/mercurial-patches/attachments/20200512/e31e2888/attachment-0001.html>
More information about the Mercurial-patches
mailing list