t2300: run git-sh-setup in an environment that better mimics the real life
authorJunio C Hamano <gitster@pobox.com>
Wed, 1 Jun 2016 20:30:47 +0000 (13:30 -0700)
committerJunio C Hamano <gitster@pobox.com>
Wed, 1 Jun 2016 21:15:17 +0000 (14:15 -0700)
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>
t/t2300-cd-to-toplevel.sh
index 9965bc5c92445160895ae3ea426c5caf1b3458b3..cccd7d923aae118b3f80aa52763648a2b4b189f2 100755 (executable)
@@ -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" ]
                )