mirror of
https://github.com/facebook/sapling.git
synced 2024-10-09 08:18:15 +03:00
283b8d130d
Summary: The "pathmatcher" crate is intended to eventually cover more "matcher" abilities so all Python "matcher" related logic can be handled by Rust. For now, it only contains a gitignore matcher. The gitignore matcher is designed to work in a repo (no need to create multiple gitignore matchers for a repo from a higher layer), and be lazy i.e. be tree-aware, and do not parse ".gitignore" unless necessary. Worth mentioning that the gitignore logic provided by the "ignore" crate seems decent in time complexity - it uses regular expression, which uses state machines to achieve "testing against multiple patterns at once", instead of testing patterns one-by-one like what git currently does. Note: The "ignore" crate provides a nice "Walker" interface but that does not fit very well with the required laziness here. So the walker interface is not used. Reviewed By: markbt Differential Revision: D7319609 fbshipit-source-id: ebd131adf45a38f83acdf653f5e49d0624012152 |
||
---|---|---|
.. | ||
src | ||
Cargo.toml |