* [PATCH rfc v2] git-sh-setup: Fix scripts whose PWD is a symlink to a work-dir on OS X [not found] <CC0158BE-219B-4E09-9B3B-A2D1B66132AC@silverinsanity.com> @ 2008-12-30 15:10 ` Marcel M. Cary 2009-01-02 22:53 ` Marcel Koeppen 2009-01-03 22:01 ` [PATCH rfc v2] " Junio C Hamano 0 siblings, 2 replies; 8+ messages in thread From: Marcel M. Cary @ 2008-12-30 15:10 UTC (permalink / raw) To: git; +Cc: gitster, jnareb, ae, j.sixt, Marcel M. Cary 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. --- Brian Gernhardt wrote: > I didn't pay attention to this at the time, but I just tried to build a > new version of git and noticed this... > >> + ..|../*|*/..|*/../*) >> + # 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" >> + ;; > > This is a non-portable construct. Notably, on OS X (and possibly some > BSDs) /bin/pwd does not give the physical path, but $(/bin/pwd -P) > does. Ouch! Junio C Hamano wrote: > Having said that, I think it would probably be better to bite the > bullet and start using "cd -P" soon after 1.6.1 goes final, and at the > same time existing places that use "cd `pwd`" as a workaround if there > are some. Perhaps it's time to start using "cd -P" with the recent release of 1.6.1. But maybe it's also worth finding a fix that doesn't rely on it for any maintenance release of 1.6 that might happen? Brian Gernhardt wrote: > We may have to build this string ourselves with a --show-cd-absolute > for portability. Some options I considered: (1) We could implement --show-cd-absolute in the short term, with the expectation of removing it we switch to "cd -P". Not sure it would really work to try to remove a switch, even if it were undocumented, or documented as deprecated. (2) We could check the output of /bin/pwd for ".." and if they are still present, add the "-P". But I suppose there's no guarantee "-P" would work, and I shy away from additional analysis of the path because I don't want to miss an edge case. (3) We could unset PWD before running /bin/pwd. (Note that in my Bash, the pwd *builtin* prints the same result whether or not I unset PWD first.) I suppose it's possible some /bin/pwd dies when PWD is unset or something, but that seems unlikely. From http://developer.apple.com/DOCUMENTATION/Darwin/Reference/ManPages/man1/pwd.1.html > The -L option does not work unless the PWD environment variable is > exported by the shell. I like option 3 best. Any thoughts? I sent the first rev of this patch to just Brian. It didn't have either of the unit test changes. He said it fixed all but t2300.3, where cd_to_toplevel doesn't actually "cd", so I made the same change to the unit test itself. Can someone with OS X try running the test suite with v2 of this patch? I don't have OS X readily available. Marcel 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.0.3 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH rfc v2] git-sh-setup: Fix scripts whose PWD is a symlink to a work-dir on OS X 2008-12-30 15:10 ` [PATCH rfc v2] git-sh-setup: Fix scripts whose PWD is a symlink to a work-dir on OS X Marcel M. Cary @ 2009-01-02 22:53 ` Marcel Koeppen 2009-01-04 21:27 ` [PATCH v2 tested] " Marcel M. Cary 2009-01-03 22:01 ` [PATCH rfc v2] " Junio C Hamano 1 sibling, 1 reply; 8+ messages in thread From: Marcel Koeppen @ 2009-01-02 22:53 UTC (permalink / raw) To: git Hi, Am 30.12.2008 um 16:10 schrieb Marcel M. Cary: > I sent the first rev of this patch to just Brian. It didn't have > either of the unit test changes. He said it fixed all but t2300.3, > where cd_to_toplevel doesn't actually "cd", so I made the same change > to the unit test itself. Can someone with OS X try running the test > suite with v2 of this patch? I don't have OS X readily available. the patch fixes t2300-cd-to-toplevel and t5521-pull-symlink for me. Marcel [I don't know why my replies get lost, so I dropped all individual recipients on this third try...] ^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH v2 tested] git-sh-setup: Fix scripts whose PWD is a symlink to a work-dir on OS X 2009-01-02 22:53 ` Marcel Koeppen @ 2009-01-04 21:27 ` Marcel M. Cary 0 siblings, 0 replies; 8+ messages in thread From: Marcel M. Cary @ 2009-01-04 21:27 UTC (permalink / raw) To: gitster; +Cc: git, jnareb, ae, j.sixt, git-dev, Marcel M. Cary 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: > 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 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH rfc v2] git-sh-setup: Fix scripts whose PWD is a symlink to a work-dir on OS X 2008-12-30 15:10 ` [PATCH rfc v2] git-sh-setup: Fix scripts whose PWD is a symlink to a work-dir on OS X Marcel M. Cary 2009-01-02 22:53 ` Marcel Koeppen @ 2009-01-03 22:01 ` Junio C Hamano 2009-01-04 13:58 ` Wincent Colaiuta 2009-01-04 18:49 ` Marcel Koeppen 1 sibling, 2 replies; 8+ messages in thread From: Junio C Hamano @ 2009-01-03 22:01 UTC (permalink / raw) To: Marcel M. Cary; +Cc: git, jnareb, ae, j.sixt "Marcel M. Cary" <marcel@oak.homeunix.org> writes: > I sent the first rev of this patch to just Brian. It didn't have > either of the unit test changes. He said it fixed all but t2300.3, > where cd_to_toplevel doesn't actually "cd", so I made the same change > to the unit test itself. Can someone with OS X try running the test > suite with v2 of this patch? I don't have OS X readily available. 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? Thanks. ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH rfc v2] git-sh-setup: Fix scripts whose PWD is a symlink to a work-dir on OS X 2009-01-03 22:01 ` [PATCH rfc v2] " Junio C Hamano @ 2009-01-04 13:58 ` Wincent Colaiuta 2009-01-04 18:49 ` Marcel Koeppen 1 sibling, 0 replies; 8+ messages in thread From: Wincent Colaiuta @ 2009-01-04 13:58 UTC (permalink / raw) To: Junio C Hamano; +Cc: Marcel M. Cary, git, jnareb, ae, j.sixt El 3/1/2009, a las 23:01, Junio C Hamano escribió: > "Marcel M. Cary" <marcel@oak.homeunix.org> writes: > >> I sent the first rev of this patch to just Brian. It didn't have >> either of the unit test changes. He said it fixed all but t2300.3, >> where cd_to_toplevel doesn't actually "cd", so I made the same change >> to the unit test itself. Can someone with OS X try running the test >> suite with v2 of this patch? I don't have OS X readily available. > > 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? > > Thanks. I also tested it and can confirm that it fixes the failures on Mac OS X 10.5.5. So feel free to add: Tested-by: Wincent Colaiuta <win@wincent.com> (on Mac OS X 10.5.5) Cheers, Wincent ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH rfc v2] git-sh-setup: Fix scripts whose PWD is a symlink to a work-dir on OS X 2009-01-03 22:01 ` [PATCH rfc v2] " Junio C Hamano 2009-01-04 13:58 ` Wincent Colaiuta @ 2009-01-04 18:49 ` Marcel Koeppen 2009-01-04 21:47 ` [PATCH v2 tested-v2] " Marcel M. Cary 1 sibling, 1 reply; 8+ messages in thread From: Marcel Koeppen @ 2009-01-04 18:49 UTC (permalink / raw) To: Junio C Hamano; +Cc: Marcel M. Cary, git, jnareb, ae, j.sixt Am 03.01.2009 um 23:01 schrieb Junio C Hamano: > "Marcel M. Cary" <marcel@oak.homeunix.org> writes: > >> I sent the first rev of this patch to just Brian. It didn't have >> either of the unit test changes. He said it fixed all but t2300.3, >> where cd_to_toplevel doesn't actually "cd", so I made the same change >> to the unit test itself. Can someone with OS X try running the test >> suite with v2 of this patch? I don't have OS X readily available. > > 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? > > Thanks. Hi, please add Tested-by: Marcel Koeppen <git-dev@marzelpan.de> (on Mac OS X 10.5.6) Marcel ^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH v2 tested-v2] git-sh-setup: Fix scripts whose PWD is a symlink to a work-dir on OS X 2009-01-04 18:49 ` Marcel Koeppen @ 2009-01-04 21:47 ` Marcel M. Cary 2009-01-06 8:18 ` Junio C Hamano 0 siblings, 1 reply; 8+ messages in thread From: Marcel M. Cary @ 2009-01-04 21:47 UTC (permalink / raw) To: gitster; +Cc: git, jnareb, ae, j.sixt, git-dev, Marcel M. Cary 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 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH v2 tested-v2] git-sh-setup: Fix scripts whose PWD is a symlink to a work-dir on OS X 2009-01-04 21:47 ` [PATCH v2 tested-v2] " Marcel M. Cary @ 2009-01-06 8:18 ` Junio C Hamano 0 siblings, 0 replies; 8+ messages in thread From: Junio C Hamano @ 2009-01-06 8:18 UTC (permalink / raw) To: Marcel M. Cary; +Cc: git, jnareb, ae, j.sixt, git-dev Thanks; queued. ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2009-01-06 8:20 UTC | newest] Thread overview: 8+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- [not found] <CC0158BE-219B-4E09-9B3B-A2D1B66132AC@silverinsanity.com> 2008-12-30 15:10 ` [PATCH rfc v2] git-sh-setup: Fix scripts whose PWD is a symlink to a work-dir on OS X Marcel M. Cary 2009-01-02 22:53 ` Marcel Koeppen 2009-01-04 21:27 ` [PATCH v2 tested] " Marcel M. Cary 2009-01-03 22:01 ` [PATCH rfc v2] " Junio C Hamano 2009-01-04 13:58 ` Wincent Colaiuta 2009-01-04 18:49 ` Marcel Koeppen 2009-01-04 21:47 ` [PATCH v2 tested-v2] " Marcel M. Cary 2009-01-06 8:18 ` Junio C Hamano
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).