Skip to content

Commit e5c52c9

Browse files
jrngitster
authored andcommitted
config, gitignore: failure to access with ENOTDIR is ok
The access_or_warn() function is used to check for optional configuration files like .gitconfig and .gitignore and warn when they are not accessible due to a configuration issue (e.g., bad permissions). It is not supposed to complain when a file is simply missing. Noticed on a system where ~/.config/git was a file --- when the new XDG_CONFIG_HOME support looks for ~/.config/git/config it should ignore ~/.config/git instead of printing irritating warnings: $ git status -s warning: unable to access '/home/jrn/.config/git/config': Not a directory warning: unable to access '/home/jrn/.config/git/config': Not a directory warning: unable to access '/home/jrn/.config/git/config': Not a directory warning: unable to access '/home/jrn/.config/git/config': Not a directory Compare v1.7.12.1~2^2 (attr:failure to open a .gitattributes file is OK with ENOTDIR, 2012-09-13). Signed-off-by: Jonathan Nieder <[email protected]> Signed-off-by: Junio C Hamano <[email protected]>
1 parent 8e950da commit e5c52c9

File tree

2 files changed

+5
-2
lines changed

2 files changed

+5
-2
lines changed

git-compat-util.h

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -604,7 +604,10 @@ int rmdir_or_warn(const char *path);
604604
*/
605605
int remove_or_warn(unsigned int mode, const char *path);
606606

607-
/* Call access(2), but warn for any error besides ENOENT. */
607+
/*
608+
* Call access(2), but warn for any error except "missing file"
609+
* (ENOENT or ENOTDIR).
610+
*/
608611
int access_or_warn(const char *path, int mode);
609612

610613
/* Warn on an inaccessible file that ought to be accessible */

wrapper.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -411,7 +411,7 @@ void warn_on_inaccessible(const char *path)
411411
int access_or_warn(const char *path, int mode)
412412
{
413413
int ret = access(path, mode);
414-
if (ret && errno != ENOENT)
414+
if (ret && errno != ENOENT && errno != ENOTDIR)
415415
warn_on_inaccessible(path);
416416
return ret;
417417
}

0 commit comments

Comments
 (0)