X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=repo-config.c;h=8c0bb2029171e35d3f6cd39932ee035aca85bb0c;hb=refs%2Fheads%2Fpu;hp=127afd784c1fcdb531c1d3435f724d0041151e90;hpb=a5954eccdd76b4596ab56f7380902b7d67ecebed;p=git.git diff --git a/repo-config.c b/repo-config.c index 127afd78..8c0bb202 100644 --- a/repo-config.c +++ b/repo-config.c @@ -65,6 +65,8 @@ static int show_config(const char* key_, const char* value_) static int get_value(const char* key_, const char* regex_) { char *tl; + const char *home = getenv("HOME"); + const char *global = (home ? mkpath("%s/.gitconfig", home) : NULL); key = strdup(key_); for (tl=key+strlen(key)-1; tl >= key && *tl != '.'; --tl) @@ -93,7 +95,13 @@ static int get_value(const char* key_, const char* regex_) } } - git_config(show_config); + if (do_all && global) + git_config_from_file(show_config, global); + if (!git_ignore_local_config) + git_config_from_file(show_config, git_path("config")); + if (!do_all && !seen) + git_config_from_file(show_config, global); + free(key); if (regexp) { regfree(regexp); @@ -108,7 +116,8 @@ static int get_value(const char* key_, const char* regex_) int main(int argc, const char **argv) { - setup_git_directory(); + int nongit = 0; + setup_git_directory_gently(&nongit); while (1 < argc) { if (!strcmp(argv[1], "--int")) @@ -117,6 +126,8 @@ int main(int argc, const char **argv) type = T_BOOL; else if (!strcmp(argv[1], "--list") || !strcmp(argv[1], "-l")) return git_config(show_all_config); + else if (!strcmp(argv[1], "--no-local")) + git_ignore_local_config = 1; else break; argc--;