diff --git a/config.c b/config.c index d7a08713a8..3f5ad9dc3c 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); } diff --git a/config.h b/config.h index 6a58d61d22..36bb23a9d9 100644 --- a/config.h +++ b/config.h @@ -58,6 +58,7 @@ struct config_options { unsigned int ignore_repo : 1; unsigned int ignore_worktree : 1; unsigned int ignore_cmdline : 1; + unsigned int system_gently : 1; const char *commondir; const char *git_dir; config_parser_event_fn_t event_fn;