You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Zlob walker (release/--features zlob, i.e. what users install) prunes subdirs when .gitignore uses * + !*.* + !/**/. Ripgrep walker (default --features ripgrep) handles it correctly, so this is a regression introduced by 1cd8d31 (#645) swapping the walker backend. Bug is upstream in zlob 1.6.1: the negation !/**/ fails to re-include directories that were pruned by *.
Minimal repro (inline test in crates/fff-core/src/walk/mod.rs):
$ cargo test --manifest-path crates/fff-core/Cargo.toml --no-default-features --features ripgrep --lib negation_reincludes_nested_files_issue_723
test walk::tests::negation_reincludes_nested_files_issue_723 ... ok
Zlob backend (this is what ships):
$ cargo test --manifest-path crates/fff-core/Cargo.toml --no-default-features --features zlob --lib negation_reincludes_nested_files_issue_723
test walk::tests::negation_reincludes_nested_files_issue_723 ... FAILED
sub1/mid.rs missing: [".gitignore", "top.rs"]
@dmtrKovalenko this is not fixable inside fff-core without either (a) patching zlob's ignore matcher (upstream in zlob 1.6.1, src/walk.rs), or (b) detecting negation patterns and falling back to the ripgrep walker for those repos. Option (b) undoes the perf win of #645 for anyone with a ! in their .gitignore — probably not what you want. Punting to you for scoping.
Activity
gustav-fff commentedon Jul 29, 2026
[triage-bot] REPRODUCED:
origin/main, branchtriage-bot/issue-723.Zlob walker (release/
--features zlob, i.e. what users install) prunes subdirs when.gitignoreuses*+!*.*+!/**/. Ripgrep walker (default--features ripgrep) handles it correctly, so this is a regression introduced by 1cd8d31 (#645) swapping the walker backend. Bug is upstream inzlob 1.6.1: the negation!/**/fails to re-include directories that were pruned by*.Minimal repro (inline test in
crates/fff-core/src/walk/mod.rs):Ripgrep backend:
Zlob backend (this is what ships):
@dmtrKovalenko this is not fixable inside
fff-corewithout either (a) patching zlob's ignore matcher (upstream inzlob 1.6.1,src/walk.rs), or (b) detecting negation patterns and falling back to the ripgrep walker for those repos. Option (b) undoes the perf win of #645 for anyone with a!in their.gitignore— probably not what you want. Punting to you for scoping.Not opening a PR.
Honk-Honk 🪿
fix: Gitignore incompatbility
fix: Gitignore incompatbility (#744)
fix: Correctly handle empty directories during the scan (#735)
fix: Gitignore incompatbility (dmtrKovalenko#744)
fix: Correctly handle empty directories during the scan (dmtrKovalenk…