##// END OF EJS Templates
rust-filepatterns: match exact `rootglob`s with a `HashSet`, not in the regex...
rust-filepatterns: match exact `rootglob`s with a `HashSet`, not in the regex This optimization yields some very interesting results in `rootglob`-heavy repositories. I build a test repository of the following structure: ``` root /<uuid>/build/empty_file ... repeat for 4000 entries ``` and a `.hgignore` containing the corresponding 4000 `rootglob` entries pointing to all `build/` folders. Rust+c `hg status` goes from 350ms down to 110ms. Differential Revision: https://phab.mercurial-scm.org/D8491

File last commit:

r45090:d31d1c06 default
r45311:e0414fcd default
Show More
Cargo.toml
40 lines | 777 B | application/toml | TOMLLexer
[package]
name = "hg-core"
version = "0.1.0"
authors = ["Georges Racinet <gracinet@anybox.fr>"]
description = "Mercurial pure Rust core library, with no assumption on Python bindings (FFI)"
edition = "2018"
build = "build.rs"
[lib]
name = "hg"
[dependencies]
byteorder = "1.3.4"
hex = "0.4.2"
lazy_static = "1.4.0"
libc = { version = "0.2.66", optional = true }
memchr = "2.3.3"
rand = "0.7.3"
rand_pcg = "0.2.1"
rand_distr = "0.2.2"
rayon = "1.3.0"
regex = "1.3.6"
twox-hash = "1.5.0"
same-file = "1.0.6"
crossbeam = "0.7.3"
micro-timer = "0.2.1"
log = "0.4.8"
[dev-dependencies]
clap = "*"
memmap = "0.7.0"
pretty_assertions = "0.6.1"
tempfile = "3.1.0"
[build-dependencies]
cc = { version = "1.0.48", optional = true }
[features]
default = []
with-re2 = ["cc", "libc"]