git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH 3/9] Make get_git_dir() and 'git rev-parse --git-dir' absolute path

From
Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Date
Feb 27, 2008, 16:38 UTC
Message-ID
<20080227163845.GA28045@laptop>
In-Reply-To
<cover.1204130175.git.pclouds@gmail.com>
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
 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 <<EOF
-fatal: bad config value for 'aninvalid.unit' in .git/config
+fatal: bad config value for 'aninvalid.unit' in $(pwd)/.git/config
 EOF
 
 test_expect_success 'invalid unit' '
diff --git a/t/t1400-update-ref.sh b/t/t1400-update-ref.sh
index 78cd412..4099c66 100755
--- a/t/t1400-update-ref.sh
+++ b/t/t1400-update-ref.sh
@@ -169,7 +169,7 @@ test_expect_success \
 	'rm -f o e
 	 git rev-parse --verify "master@{2005-05-26 23:33:01}" >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 <input'
 
 cat >expect <<EOF
-.git/objects/pack/pack-.pack: `git rev-parse --verify export-boundary`
+$(pwd)/.git/objects/pack/pack-.pack: `git rev-parse --verify export-boundary`
 EOF
 test_expect_success \
 	'I: verify edge list' \
-- 
1.5.4.2.281.g28d0e
Previous: Nguyễn Thái Ngọc DuyNext: Nguyễn Thái Ngọc Duy
Message 5 of 24 in “"git read-tree -m" and the like require worktree”
  1. 1/9 "git read-tree -m" and the like require worktreeNguyễn Thái Ngọc Duy, Feb 27, 2008
  2. Junio C HamanoFeb 28, 2008
  3. Nguyen Thai Ngoc DuyFeb 28, 2008
  4. 2/9 Make sure setup_git_directory is called before accessing repositoryNguyễn Thái Ngọc Duy, Feb 27, 2008
  5. 3/9 Make get_git_dir() and 'git rev-parse --git-dir' absolute pathNguyễn Thái Ngọc Duy, Feb 27, 2008
  6. 4/9 Make setup_work_tree() return new prefixNguyễn Thái Ngọc Duy, Feb 27, 2008
  7. Johannes SchindelinFeb 28, 2008
  8. Nguyen Thai Ngoc DuyFeb 28, 2008
  9. Johannes SchindelinFeb 28, 2008
  10. 5/9 http-push: Avoid calling setup_git_directory() twiceNguyễn Thái Ngọc Duy, Feb 27, 2008
  11. Junio C HamanoFeb 28, 2008
  12. Nguyen Thai Ngoc DuyFeb 28, 2008
  13. 6/9 Completely move out worktree setup from setup_git_directory_gently()Nguyễn Thái Ngọc Duy, Feb 27, 2008
  14. Junio C HamanoFeb 28, 2008
  15. Nguyen Thai Ngoc DuyFeb 28, 2008
  16. Junio C HamanoFeb 28, 2008
  17. Nguyen Thai Ngoc DuyFeb 28, 2008
  18. Johannes SchindelinFeb 28, 2008
  19. Nguyen Thai Ngoc DuyFeb 28, 2008
  20. 7/9 builtin-archive: mark unused prefix "unused_prefix"Nguyễn Thái Ngọc Duy, Feb 27, 2008
  21. 8/9 Make setup_git_directory() auto-setup worktree if foundNguyễn Thái Ngọc Duy, Feb 27, 2008
  22. 9/9 Documentation: update api-builtin and api-setupNguyễn Thái Ngọc Duy, Feb 27, 2008
  23. Jonathan NiederApr 5, 2011
  24. Nguyen Thai Ngoc DuyApr 5, 2011

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.