summaryrefslogtreecommitdiff
path: root/config.c
diff options
context:
space:
mode:
authorJeff Hostetler <jeffhost@microsoft.com>2019-04-29 20:14:22 (GMT)
committerJunio C Hamano <gitster@pobox.com>2019-05-07 01:13:54 (GMT)
commitf672deec2d56b0d7ae64ce3efd918e02efc58b9c (patch)
tree0bdddc479460ad2a9893646b41a9e3251b3e430f /config.c
parent81567caf87c655ba13260bd66d8ec67b8d6e492b (diff)
downloadgit-f672deec2d56b0d7ae64ce3efd918e02efc58b9c.zip
git-f672deec2d56b0d7ae64ce3efd918e02efc58b9c.tar.gz
git-f672deec2d56b0d7ae64ce3efd918e02efc58b9c.tar.bz2
trace2: fixup access problem on /etc/gitconfig in read_very_early_config
Teach do_git_config_sequence() to optionally gently check for access to the system config. Use this option in read_very_early_config() when initializing trace2. In [1] SZEDER Gábor reported that my changes in [2] introduced a regression when the user does not have permission to read the system config. This commit addresses that problem by optionally ignoring that error. [1] https://public-inbox.org/git/285beb2b2d740ce20fdd8af1becf371ab39703db.1554995916.git.gitgitgadget@gmail.com/T/#m342e839289aec515523a98b5e34d7f42d3f1fd79 [2] https://public-inbox.org/git/285beb2b2d740ce20fdd8af1becf371ab39703db.1554995916.git.gitgitgadget@gmail.com/T/#m11b59c9228c698442f750ee8f9b10c629399ae48 Signed-off-by: Jeff Hostetler <jeffhost@microsoft.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'config.c')
-rw-r--r--config.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/config.c b/config.c
index d7a0871..3f5ad9d 100644
--- a/config.c
+++ b/config.c
@@ -1676,7 +1676,9 @@ static int do_git_config_sequence(const struct config_options *opts,
repo_config = NULL;
current_parsing_scope = CONFIG_SCOPE_SYSTEM;
- if (git_config_system() && !access_or_die(git_etc_gitconfig(), R_OK, 0))
+ if (git_config_system() && !access_or_die(git_etc_gitconfig(), R_OK,
+ opts->system_gently ?
+ ACCESS_EACCES_OK : 0))
ret += git_config_from_file(fn, git_etc_gitconfig(),
data);
@@ -1807,6 +1809,7 @@ void read_very_early_config(config_fn_t cb, void *data)
opts.ignore_repo = 1;
opts.ignore_worktree = 1;
opts.ignore_cmdline = 1;
+ opts.system_gently = 1;
config_with_options(cb, data, NULL, &opts);
}