Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@xxxxxxxxx> --- builtin/config.c | 9 ++++++--- t/t1300-repo-config.sh | 3 ++- t/t1302-repo-version.sh | 2 +- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/builtin/config.c b/builtin/config.c index ecc8f87..3fca3b4 100644 --- a/builtin/config.c +++ b/builtin/config.c @@ -159,7 +159,8 @@ static int get_value(const char *key_, const char *regex_) local = config_exclusive_filename; if (!local) { const char *home = getenv("HOME"); - local = repo_config = git_pathdup("config"); + if (startup_info->have_repository) + local = repo_config = git_pathdup("config"); if (git_config_global() && home) global = xstrdup(mkpath("%s/.gitconfig", home)); if (git_config_system()) @@ -197,7 +198,8 @@ static int get_value(const char *key_, const char *regex_) git_config_from_file(show_config, system_wide, NULL); if (do_all && global) git_config_from_file(show_config, global, NULL); - git_config_from_file(show_config, local, NULL); + if (local) + git_config_from_file(show_config, local, NULL); if (!do_all && !seen && global) git_config_from_file(show_config, global, NULL); if (!do_all && !seen && system_wide) @@ -215,7 +217,8 @@ static int get_value(const char *key_, const char *regex_) ret = (seen == 1) ? 0 : seen > 1 ? 2 : 1; free_strings: - free(repo_config); + if (repo_config) + free(repo_config); free(global); return ret; } diff --git a/t/t1300-repo-config.sh b/t/t1300-repo-config.sh index cfb70e2..b040f72 100755 --- a/t/t1300-repo-config.sh +++ b/t/t1300-repo-config.sh @@ -833,7 +833,8 @@ test_expect_success 'skip .git/config if there is no repository' ' cd b && echo "[core]" > .git/config && echo "wrong = true" >> .git/config && - test -z "$(git var -l | grep core.wrong)" + test -z "$(git var -l | grep core.wrong)" && + test -z "$(git config --bool core.wrong)" ) ' diff --git a/t/t1302-repo-version.sh b/t/t1302-repo-version.sh index 8d305b4..74bf51f 100755 --- a/t/t1302-repo-version.sh +++ b/t/t1302-repo-version.sh @@ -29,7 +29,7 @@ test_expect_success 'gitdir selection on normal repos' ' # Make sure it would stop at test2, not trash test_expect_success 'gitdir selection on unsupported repo' ' (cd test2 && - test "$(git config core.repositoryformatversion)" = 99)' + test "$(git config --file=.git/config core.repositoryformatversion)" = 99)' test_expect_success 'gitdir not required mode' ' (git apply --stat test.patch && -- 1.7.0.1.384.g6abcaa -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html