Read configuration also from ~/.gitconfig
[git.git] / repo-config.c
index 08fc4cc..59c2bfb 100644 (file)
@@ -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,12 @@ 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);
+       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);