From: Nguyễn Thái Ngọc Duy Date: Wed, 27 Feb 2008 16:38:45 GMT Subject: [PATCH 3/9] Make get_git_dir() and 'git rev-parse --git-dir' absolute path Message-ID: <20080227163845.GA28045@laptop> In-Reply-To: Signed-off-by: Nguyễn Thái Ngọc Duy --- builtin-rev-parse.c | 14 +------------- environment.c | 1 + t/t1300-repo-config.sh | 2 +- t/t1400-update-ref.sh | 4 ++-- t/t9300-fast-import.sh | 2 +- 5 files changed, 6 insertions(+), 17 deletions(-) diff --git a/builtin-rev-parse.c b/builtin-rev-parse.c index b9af1a5..651b5e6 100644 --- a/builtin-rev-parse.c +++ b/builtin-rev-parse.c @@ -496,19 +496,7 @@ int cmd_rev_parse(int argc, const char **argv, const char *prefix) continue; } if (!strcmp(arg, "--git-dir")) { - const char *gitdir = getenv(GIT_DIR_ENVIRONMENT); - static char cwd[PATH_MAX]; - if (gitdir) { - puts(gitdir); - continue; - } - if (!prefix) { - puts(".git"); - continue; - } - if (!getcwd(cwd, PATH_MAX)) - die("unable to get current working directory"); - printf("%s/.git\n", cwd); + puts(get_git_dir()); continue; } if (!strcmp(arg, "--is-inside-git-dir")) { diff --git a/environment.c b/environment.c index 6739a3f..ab7e54c 100644 --- a/environment.c +++ b/environment.c @@ -51,6 +51,7 @@ static void setup_git_env(void) git_dir = getenv(GIT_DIR_ENVIRONMENT); if (!git_dir) git_dir = DEFAULT_GIT_DIR_ENVIRONMENT; + git_dir = xstrdup(make_absolute_path(git_dir)); git_object_dir = getenv(DB_ENVIRONMENT); if (!git_object_dir) { git_object_dir = xmalloc(strlen(git_dir) + 9); diff --git a/t/t1300-repo-config.sh b/t/t1300-repo-config.sh index 4928a57..45b26d5 100755 --- a/t/t1300-repo-config.sh +++ b/t/t1300-repo-config.sh @@ -497,7 +497,7 @@ test_expect_success numbers ' ' cat > expect <o 2>e && test '"$B"' = $(cat o) && - test "warning: Log .git/logs/'"$m has gap after $gd"'." = "$(cat e)"' + test "warning: Log '"$(pwd)"'/.git/logs/'"$m has gap after $gd"'." = "$(cat e)"' test_expect_success \ 'Query "master@{2005-05-26 23:38:00}" (middle of history)' \ 'rm -f o e @@ -187,7 +187,7 @@ test_expect_success \ 'rm -f o e git rev-parse --verify "master@{2005-05-28}" >o 2>e && test '"$D"' = $(cat o) && - test "warning: Log .git/logs/'"$m unexpectedly ended on $ld"'." = "$(cat e)"' + test "warning: Log '"$(pwd)"'/.git/logs/'"$m unexpectedly ended on $ld"'." = "$(cat e)"' rm -f .git/$m .git/logs/$m expect diff --git a/t/t9300-fast-import.sh b/t/t9300-fast-import.sh index cceedbb..98a0cdf 100755 --- a/t/t9300-fast-import.sh +++ b/t/t9300-fast-import.sh @@ -510,7 +510,7 @@ test_expect_success \ 'git-fast-import --export-pack-edges=edges.list expect <