mirror of
https://github.com/git/git.git
synced 2024-11-01 14:57:52 +01:00
2c3c395e84
In cd_to_toplevel, instead of 'cd $(unset PWD; /bin/pwd)/$path' use 'cd -P $path'. The "-P" option yields a desirable similarity to C chdir. While the "-P" option may be slightly less commonly supported than /bin/pwd, it is more concise, better tested, and less error prone. I've already added the 'unset PWD' to fix the /bin/pwd solution on BSD; there may be more edge cases out there. This still passes all the same test cases in t5521-pull-symlink.sh and t2300-cd-to-toplevel.sh, even before updating them to use 'pwd -P'. Signed-off-by: Junio C Hamano <gitster@pobox.com>
37 lines
667 B
Bash
Executable file
37 lines
667 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 &&
|
|
[ "$(pwd -P)" = "$TOPLEVEL" ]
|
|
)
|
|
'
|
|
}
|
|
|
|
TOPLEVEL="$(pwd -P)/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
|