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

[PATCH v2 tested] 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:27 UTC
Message-ID
<1231104445-12531-1-git-send-email-marcel@oak.homeunix.org>
In-Reply-To
<AC726FD4-AE7F-4EC0-82E5-62C6D03C4E5A@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>
---
Junio C Hamano wrote:
Show 6 quoted lines
> I think I saw a success report on the list.  Care to resend it with
> Sign-off (by you) and
> 
>         Tested-by: tester <test@er.xz> (on PLATFORM)
> 
> lines as you see necessary for application?
Same as before but with S-o-b/T-b lines.
Marcel Koeppen wrote:
> [I don't know why my replies get lost, so I dropped all individual
> recipients on this third try...]

I noticed that Brian Gernhardt's message also didn't make it to the list, even though it was addressed to the list. I'm not sure why.

 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 3 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.