summaryrefslogtreecommitdiff
path: root/attr.c
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2012-09-13 12:40:39 -0700
committerJunio C Hamano <gitster@pobox.com>2012-09-13 22:15:10 -0700
commit8e950dab86eafa8f4ea671fab593ca6210bc2e15 (patch)
treef9b5e0e072ea0641f34ad6d97252fca962697e09 /attr.c
parent55b38a48e2a7ccfaaa7897a5fccb98327fa0e3c0 (diff)
downloadgit-8e950dab86eafa8f4ea671fab593ca6210bc2e15.tar.gz
attr: failure to open a .gitattributes file is OK with ENOTDIR
Often we consult an in-tree .gitattributes file that exists per directory. Majority of directories do not usually have such a file, and it is perfectly fine if we cannot open it because there is no such file, but we do want to know when there is an I/O or permission error. Earlier, we made the codepath warn when we fail to open it for reasons other than ENOENT for that reason. We however sometimes have to attempt to open the .gitattributes file from a directory that does not exist in the commit that is currently checked out. "git pack-objects" wants to know if a path is marked with "-delta" attributes, and "git archive" wants to know about export-ignore and export-subst attributes. Both commands may and do need to ask the attributes system about paths in an arbitrary commit. "git diff", after removing an entire directory, may want to know textconv on paths that used to be in that directory. Make sure we also ignore a failure to open per-directory attributes file due to ENOTDIR. Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'attr.c')
-rw-r--r--attr.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/attr.c b/attr.c
index f12c83f80a..056d702f6e 100644
--- a/attr.c
+++ b/attr.c
@@ -353,7 +353,7 @@ static struct attr_stack *read_attr_from_file(const char *path, int macro_ok)
int lineno = 0;
if (!fp) {
- if (errno != ENOENT)
+ if (errno != ENOENT && errno != ENOTDIR)
warn_on_inaccessible(path);
return NULL;
}