mirror of
https://github.com/martinvonz/jj.git
synced 2025-01-02 18:01:05 +00:00
cd0023e796
When using a sparse working copy (e.g. with no files at all) and updating the working copy from the root commit to a commit with millions of files, we shouldn't have to walk the parts of the diff that doesn't match the sparse patterns. However, we still do the full walk because our `Tree::diff()` currently doesn't care about what the matcher tells us to visit, it only filters out unwanted files after visiting them. This commit fixes that for the special (but common) case of matching nothing in a directory. I tried also adding special handling for when the matcher says that we should only visit a few entries, but it wasn't clearly better in the cases I tested it on. I'll keep that patch around and might send it if I find some cases where it helps. |
||
---|---|---|
.. | ||
benches | ||
gen-protos | ||
src | ||
tests | ||
testutils | ||
build.rs | ||
Cargo.toml |