From: Jonathan Nieder <jrnieder@gmail.com>
To: Jeff King <peff@peff.net>
Cc: git@vger.kernel.org
Subject: [PATCH 1/2] config, gitignore: failure to access with ENOTDIR is ok
Date: Sat, 13 Oct 2012 17:03:07 -0700 [thread overview]
Message-ID: <20121014000307.GA11399@elie.Belkin> (raw)
In-Reply-To: <20121014000210.GA19094@elie.Belkin>
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 <jrnieder@gmail.com>
---
git-compat-util.h | 5 ++++-
wrapper.c | 2 +-
2 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/git-compat-util.h b/git-compat-util.h
index 2fbf1fd8..f567767f 100644
--- a/git-compat-util.h
+++ b/git-compat-util.h
@@ -635,7 +635,10 @@ int rmdir_or_warn(const char *path);
*/
int remove_or_warn(unsigned int mode, const char *path);
-/* Call access(2), but warn for any error besides ENOENT. */
+/*
+ * Call access(2), but warn for any error except "missing file"
+ * (ENOENT or ENOTDIR).
+ */
int access_or_warn(const char *path, int mode);
/* Warn on an inaccessible file that ought to be accessible */
diff --git a/wrapper.c b/wrapper.c
index 68739aaa..c1b919f3 100644
--- a/wrapper.c
+++ b/wrapper.c
@@ -411,7 +411,7 @@ void warn_on_inaccessible(const char *path)
int access_or_warn(const char *path, int mode)
{
int ret = access(path, mode);
- if (ret && errno != ENOENT)
+ if (ret && errno != ENOENT && errno != ENOTDIR)
warn_on_inaccessible(path);
return ret;
}
--
1.8.0.rc2
next prev parent reply other threads:[~2012-10-14 0:03 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-10-14 0:02 [RFC/PATCH 0/2] Re: [PATCH] config: warn on inaccessible files Jonathan Nieder
2012-10-14 0:03 ` Jonathan Nieder [this message]
2012-10-14 0:04 ` [PATCH 2/2] config: treat user and xdg config permission problems as errors Jonathan Nieder
2012-10-14 6:22 ` Jeff King
2012-10-14 8:42 ` Jonathan Nieder
2012-10-14 8:44 ` [PATCH 3/2] config doc: advertise GIT_CONFIG_NOSYSTEM Jonathan Nieder
2012-10-14 8:53 ` [PATCH v2 3/2] " Jonathan Nieder
2012-10-14 8:46 ` [PATCH 4/2] config: exit on error accessing any config file Jonathan Nieder
2012-10-14 16:43 ` [PATCH 2/2] config: treat user and xdg config permission problems as errors Jeff King
2012-10-14 4:55 ` [RFC/PATCH 0/2] Re: [PATCH] config: warn on inaccessible files Junio C Hamano
2012-10-14 6:26 ` Jeff King
2012-10-14 9:00 ` Jonathan Nieder
2012-10-14 6:16 ` Jeff King
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: http://vger.kernel.org/majordomo-info.html
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20121014000307.GA11399@elie.Belkin \
--to=jrnieder@gmail.com \
--cc=git@vger.kernel.org \
--cc=peff@peff.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://80x24.org/mirrors/git.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).