From f0056f6419deb6b4e226976c571f6429875519f1 Mon Sep 17 00:00:00 2001 From: Jeff King Date: Thu, 20 Oct 2016 02:16:41 -0400 Subject: read info/{attributes,exclude} only when in repository The low-level attribute and gitignore code will try to look in $GIT_DIR/info for any repo-level configuration files, even if we have not actually determined that we are in a repository (e.g., running "git grep --no-index"). In such a case they end up looking for ".git/info/attributes", etc. This is generally harmless, as such a file is unlikely to exist outside of a repository, but it's still conceptually the wrong thing to do. Let's detect this situation explicitly and skip reading the file (i.e., the same behavior we'd get if we were in a repository and the file did not exist). Signed-off-by: Jeff King Signed-off-by: Junio C Hamano --- attr.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'attr.c') diff --git a/attr.c b/attr.c index eec5d7d15a..1fcf042b87 100644 --- a/attr.c +++ b/attr.c @@ -531,7 +531,11 @@ static void bootstrap_attr_stack(void) debug_push(elem); } - elem = read_attr_from_file(git_path_info_attributes(), 1); + if (startup_info->have_repository) + elem = read_attr_from_file(git_path_info_attributes(), 1); + else + elem = NULL; + if (!elem) elem = xcalloc(1, sizeof(*elem)); elem->origin = NULL; -- cgit v1.2.1