Merge branch 'hv/submodule-path-unmatch'
[gitweb.git] / builtin / config.c
index da54fd1e1239700ed19afa50ac0f24a51e5f044a..8cd08da99122bc79025d2a78204d316f1b7ba478 100644 (file)
@@ -387,15 +387,20 @@ int cmd_config(int argc, const char **argv, const char *prefix)
 
                home_config_paths(&user_config, &xdg_config, "config");
 
-               if (access(user_config, R_OK) && !access(xdg_config, R_OK) &&
-                   (actions == ACTION_LIST ||
-                    actions == ACTION_GET_COLOR ||
-                    actions == ACTION_GET_COLORBOOL))
+               if (!user_config)
+                       /*
+                        * It is unknown if HOME/.gitconfig exists, so
+                        * we do not know if we should write to XDG
+                        * location; error out even if XDG_CONFIG_HOME
+                        * is set and points at a sane location.
+                        */
+                       die("$HOME not set");
+
+               if (access(user_config, R_OK) &&
+                   xdg_config && !access(xdg_config, R_OK))
                        given_config_file = xdg_config;
-               else if (user_config)
-                       given_config_file = user_config;
                else
-                       die("$HOME not set");
+                       given_config_file = user_config;
        }
        else if (use_system_config)
                given_config_file = git_etc_gitconfig();