summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2016-06-01 20:30:47 (GMT)
committerJunio C Hamano <gitster@pobox.com>2016-06-01 21:15:17 (GMT)
commitfe17fc0006927246c5905ef9352e7e89a3c5814b (patch)
tree9d123e6ba9acb8c53bd2a4777e0c44ceba8d7aee
parent4b0891ffe4ec3aef081cf48c5f9a747586076f7a (diff)
downloadgit-fe17fc0006927246c5905ef9352e7e89a3c5814b.zip
git-fe17fc0006927246c5905ef9352e7e89a3c5814b.tar.gz
git-fe17fc0006927246c5905ef9352e7e89a3c5814b.tar.bz2
t2300: run git-sh-setup in an environment that better mimics the real life
When we run scripted Porcelains, "git" potty has set up the $PATH by prepending $GIT_EXEC_PATH, the path given by "git --exec-path=$there $cmd", etc. already. Because of this, scripted Porcelains can dot-source shell script library like git-sh-setup with simple dot without specifying any path. t2300 however dot-sources git-sh-setup without adjusting $PATH like the real "git" potty does. This has not been a problem so far, but once git-sh-setup wants to rely on the $PATH adjustment, just like any scripted Porcelains already do, it would become one. It cannot for example dot-source another shell library without specifying the full path to it by prefixing $(git --exec-path). Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rwxr-xr-xt/t2300-cd-to-toplevel.sh3
1 files changed, 2 insertions, 1 deletions
diff --git a/t/t2300-cd-to-toplevel.sh b/t/t2300-cd-to-toplevel.sh
index 9965bc5..cccd7d9 100755
--- a/t/t2300-cd-to-toplevel.sh
+++ b/t/t2300-cd-to-toplevel.sh
@@ -8,7 +8,8 @@ test_cd_to_toplevel () {
test_expect_success $3 "$2" '
(
cd '"'$1'"' &&
- . "$(git --exec-path)"/git-sh-setup &&
+ PATH="$(git --exec-path):$PATH" &&
+ . git-sh-setup &&
cd_to_toplevel &&
[ "$(pwd -P)" = "$TOPLEVEL" ]
)