1
0
mirror of https://github.com/BurntSushi/ripgrep.git synced 2025-01-29 22:01:04 +02:00

ignore: remove .git check in some cases

When we know we aren't going to process gitignores, we shouldn't waste
the syscall in every directory to check for a git repo.
This commit is contained in:
Andrew Gallant 2019-05-29 18:06:11 -04:00
parent 290fd2a7b6
commit 7d3f794588
No known key found for this signature in database
GPG Key ID: B2E3A4923F8B0D44

View File

@ -197,7 +197,12 @@ impl Ignore {
errs.maybe_push(err);
igtmp.is_absolute_parent = true;
igtmp.absolute_base = Some(absolute_base.clone());
igtmp.has_git = parent.join(".git").exists();
igtmp.has_git =
if self.0.opts.git_ignore {
parent.join(".git").exists()
} else {
false
};
ig = Ignore(Arc::new(igtmp));
compiled.insert(parent.as_os_str().to_os_string(), ig.clone());
}
@ -275,6 +280,12 @@ impl Ignore {
errs.maybe_push(err);
m
};
let has_git =
if self.0.opts.git_ignore {
dir.join(".git").exists()
} else {
false
};
let ig = IgnoreInner {
compiled: self.0.compiled.clone(),
dir: dir.to_path_buf(),
@ -290,7 +301,7 @@ impl Ignore {
git_global_matcher: self.0.git_global_matcher.clone(),
git_ignore_matcher: gi_matcher,
git_exclude_matcher: gi_exclude_matcher,
has_git: dir.join(".git").exists(),
has_git: has_git,
opts: self.0.opts,
};
(ig, errs.into_error_option())