@ 261027.5

261027.3 · 65e072fab262fdaaa19ef788bbb468ae6f8e4f8e

ignore: respect linked worktree excludes without requiring Git

PR #3578

reading declarations

Changes to crates/ignore/src/. All files

crates/ignore/src/dir.rs

@@ -373,7 +373,7 @@ impl Ignore {     ) -> (IgnoreInner, Option<Error>) {         let check_vcs_dir = self.inner.opts.require_git             && (self.inner.opts.git_ignore || self.inner.opts.git_exclude);-        let git_type = if check_vcs_dir+        let git_type = if (check_vcs_dir || self.inner.opts.git_exclude)             && ignore_files_list.is_none_or(|i| i.has_git_dir)         {             dir.join(".git").metadata().ok().map(|md| md.file_type())@@ -1669,6 +1669,13 @@ mod tests {         assert!(err.is_none());         assert!(ignore.matched("ignore_me", false).is_ignore()); +        let without_required_git =+            IgnoreBuilder::new().require_git(false).build();+        let (ignore, err) =+            without_required_git.add_child(td.path().join("linked-worktree"));+        assert!(err.is_none());+        assert!(ignore.matched("ignore_me", false).is_ignore());+         // absolute commondir         wfile(commondir_path(), git_dir.to_str().unwrap());         let (ignore, err) = ib.add_child(td.path().join("linked-worktree"));