##// END OF EJS Templates
rust-status: collect traversed directories if required...
rust-status: collect traversed directories if required Some commands (`hg purge` notably) register the `traversedir` callback on their matcher to run said callback every time a directory is traversed. This is the first of three patches, further broadening Rust support for status. Unfortunately, there is no way around collecting a full `Vec` (or any other owned datastructure, like a radix tree) and pushing it back up the Python layer since keeping the Python callback in a closure would mean giving up multithreading because of the GIL, which is obviously unacceptable. Performance is still a lot better than the Python+C path. Running `hg clean/purge` on Netbeans' repo (100k files): ``` | No-op | 30% unknown -------------------------- Rust | 1.0s | 1.67s C | 2.0s | 2.87s ``` Differential Revision: https://phab.mercurial-scm.org/D8518
Raphaël Gomès -
r45353:c802ec4f default
Show More
Name Size Modified Last Commit Author
/ rust / hg-core / src
dirstate
re2
revlog
utils
ancestors.rs Loading ...
dagops.rs Loading ...
dirstate.rs Loading ...
discovery.rs Loading ...
filepatterns.rs Loading ...
lib.rs Loading ...
matchers.rs Loading ...
revlog.rs Loading ...
testing.rs Loading ...
utils.rs Loading ...