dd6c1360b2
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: Wincent Colaiuta <win@wincent.com> (on Mac OS X 10.5.5) Tested-by: Marcel Koeppen <git-dev@marzelpan.de> (on Mac OS X 10.5.6) Signed-off-by: Junio C Hamano <gitster@pobox.com>
38 lines
693 B
Bash
Executable File
38 lines
693 B
Bash
Executable File
#!/bin/sh
|
|
|
|
test_description='cd_to_toplevel'
|
|
|
|
. ./test-lib.sh
|
|
|
|
test_cd_to_toplevel () {
|
|
test_expect_success "$2" '
|
|
(
|
|
cd '"'$1'"' &&
|
|
. git-sh-setup &&
|
|
cd_to_toplevel &&
|
|
[ "$(unset PWD; /bin/pwd)" = "$TOPLEVEL" ]
|
|
)
|
|
'
|
|
}
|
|
|
|
TOPLEVEL="$(unset PWD; /bin/pwd)/repo"
|
|
mkdir -p repo/sub/dir
|
|
mv .git repo/
|
|
SUBDIRECTORY_OK=1
|
|
|
|
test_cd_to_toplevel repo 'at physical root'
|
|
|
|
test_cd_to_toplevel repo/sub/dir 'at physical subdir'
|
|
|
|
ln -s repo symrepo
|
|
test_cd_to_toplevel symrepo 'at symbolic root'
|
|
|
|
ln -s repo/sub/dir subdir-link
|
|
test_cd_to_toplevel subdir-link 'at symbolic subdir'
|
|
|
|
cd repo
|
|
ln -s sub/dir internal-link
|
|
test_cd_to_toplevel internal-link 'at internal symbolic subdir'
|
|
|
|
test_done
|