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

[PATCH v2 tested-v2] git-sh-setup: Fix scripts whose PWD is a symlink to a work-dir on OS X

From
Marcel M. Cary <marcel@oak.homeunix.org>
Date
Jan 4, 2009, 21:47 UTC
Message-ID
<1231105649-12998-1-git-send-email-marcel@oak.homeunix.org>
In-Reply-To
<8C7E36D0-C037-427D-B6E2-4050CC767CD0@marzelpan.de>

On Mac OS X and possibly BSDs, /bin/pwd reads PWD from the environment if available and shows the logical path by default rather than the physical one.

Unset PWD before running /bin/pwd in both cd_to_toplevel and its test.

Still use the external /bin/pwd because in my Bash on Linux, the builtin pwd prints the same result whether or not PWD is set.

Signed-off-by: Marcel M. Cary <marcel@oak.homeunix.org>
Tested-by: Marcel Koeppen <git-dev@marzelpan.de> (on Mac OS X 10.5.6)
---
> please add
> 
> Tested-by: Marcel Koeppen <git-dev@marzelpan.de> (on Mac OS X 10.5.6)
Now with the OS, in detail.
 git-sh-setup.sh           |    2 +-
 t/t2300-cd-to-toplevel.sh |    4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/git-sh-setup.sh b/git-sh-setup.sh
index f07d96b..2142308 100755
--- a/git-sh-setup.sh
+++ b/git-sh-setup.sh
@@ -96,7 +96,7 @@ cd_to_toplevel () {
 		..|../*|*/..|*/../*)
 			# Interpret $cdup relative to the physical, not logical, cwd.
 			# Probably /bin/pwd is more portable than passing -P to cd or pwd.
-			phys="$(/bin/pwd)/$cdup"
+			phys="$(unset PWD; /bin/pwd)/$cdup"
 			;;
 		*)
 			# There's no "..", so no need to make things absolute.
diff --git a/t/t2300-cd-to-toplevel.sh b/t/t2300-cd-to-toplevel.sh
index beddb4e..e42cbfe 100755
--- a/t/t2300-cd-to-toplevel.sh
+++ b/t/t2300-cd-to-toplevel.sh
@@ -10,12 +10,12 @@ test_cd_to_toplevel () {
 			cd '"'$1'"' &&
 			. git-sh-setup &&
 			cd_to_toplevel &&
-			[ "$(/bin/pwd)" = "$TOPLEVEL" ]
+			[ "$(unset PWD; /bin/pwd)" = "$TOPLEVEL" ]
 		)
 	'
 }
 
-TOPLEVEL="$(/bin/pwd)/repo"
+TOPLEVEL="$(unset PWD; /bin/pwd)/repo"
 mkdir -p repo/sub/dir
 mv .git repo/
 SUBDIRECTORY_OK=1
-- 
1.6.1
Previous: Marcel KoeppenNext: Junio C Hamano
Message 7 of 8 in “git-sh-setup: Fix scripts whose PWD is a symlink to a work-dir on OS X”
  1. git-sh-setup: Fix scripts whose PWD is a symlink to a work-dir on OS XMarcel M. Cary, Dec 30, 2008
  2. Marcel KoeppenJan 2, 2009
  3. git-sh-setup: Fix scripts whose PWD is a symlink to a work-dir on OS XMarcel M. Cary, Jan 4, 2009
  4. Junio C HamanoJan 3, 2009
  5. Wincent ColaiutaJan 4, 2009
  6. Marcel KoeppenJan 4, 2009
  7. git-sh-setup: Fix scripts whose PWD is a symlink to a work-dir on OS XMarcel M. Cary, Jan 4, 2009
  8. Junio C HamanoJan 6, 2009

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.