From f8ae334ca9416aae06eed600fec0eb94118a04ea Mon Sep 17 00:00:00 2001 From: William Correia Date: Sun, 8 Aug 2021 17:38:24 -0400 Subject: [PATCH] Add --no-ignore-parent flag - Flag toggles parent checking in the `ignore` crate. This should affect both git and non-git ignore files. - Updated Changelog. --- CHANGELOG.md | 2 ++ src/app.rs | 10 ++++++++++ src/main.rs | 4 ++++ src/options.rs | 3 +++ src/walk.rs | 2 +- 5 files changed, 20 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 08e4e60..16d6e20 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,8 @@ ## Features +- Add new `--no-ignore-parent` flag, see #787 (@will459) + ## Bugfixes - Set default path separator to `/` in MSYS, see #537 and #730 (@aswild) diff --git a/src/app.rs b/src/app.rs index 2d6ec94..fcfbebe 100644 --- a/src/app.rs +++ b/src/app.rs @@ -49,6 +49,16 @@ pub fn build_app() -> App<'static, 'static> { ignored by '.gitignore' files.", ), ) + .arg( + Arg::with_name("no-ignore-parent") + .long("no-ignore-parent") + .overrides_with("no-ignore-parent") + .hidden_short_help(true) + .long_help( + "Show search results from files and directories that would otherwise be \ + ignored by '.gitignore', '.ignore', or '.fdignore' files in parent directories.", + ), + ) .arg( Arg::with_name("no-global-ignore-file") .long("no-global-ignore-file") diff --git a/src/main.rs b/src/main.rs index 8654688..f3cda2d 100644 --- a/src/main.rs +++ b/src/main.rs @@ -338,6 +338,10 @@ fn run() -> Result { read_vcsignore: !(matches.is_present("no-ignore") || matches.is_present("rg-alias-hidden-ignore") || matches.is_present("no-ignore-vcs")), + read_parent_ignore: !(matches.is_present("no-ignore") + || matches.is_present("rg-alias-hidden-ignore") + || matches.is_present("no-ignore-vcs") + || matches.is_present("no-ignore-parent")), read_global_ignore: !(matches.is_present("no-ignore") || matches.is_present("rg-alias-hidden-ignore") || matches.is_present("no-global-ignore-file")), diff --git a/src/options.rs b/src/options.rs index aa9b5ea..cf7d28d 100644 --- a/src/options.rs +++ b/src/options.rs @@ -24,6 +24,9 @@ pub struct Options { /// Whether to respect `.fdignore` files or not. pub read_fdignore: bool, + /// Whether to respect ignore files in parent directories or not. + pub read_parent_ignore: bool, + /// Whether to respect VCS ignore files (`.gitignore`, ..) or not. pub read_vcsignore: bool, diff --git a/src/walk.rs b/src/walk.rs index 0529191..d970d2c 100644 --- a/src/walk.rs +++ b/src/walk.rs @@ -68,7 +68,7 @@ pub fn scan(path_vec: &[PathBuf], pattern: Arc, config: Arc) -> walker .hidden(config.ignore_hidden) .ignore(config.read_fdignore) - .parents(config.read_fdignore || config.read_vcsignore) + .parents(config.read_parent_ignore) .git_ignore(config.read_vcsignore) .git_global(config.read_vcsignore) .git_exclude(config.read_vcsignore)