]> git.ipfire.org Git - thirdparty/git.git/commitdiff
subtree: fix assumption about the directory separator
authorJohannes Schindelin <johannes.schindelin@gmx.de>
Mon, 14 Jun 2021 12:41:53 +0000 (12:41 +0000)
committerJunio C Hamano <gitster@pobox.com>
Tue, 15 Jun 2021 02:38:28 +0000 (11:38 +0900)
On Windows, both forward and backslash are valid separators. In
22d550749361 (subtree: don't fuss with PATH, 2021-04-27), however, we
added code that assumes that it can only be the forward slash.

Let's fix that.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
contrib/subtree/git-subtree.sh

index 3935cea7dd137e89a92e4b688721654db6500b0c..7f767b5c38fe2c1650868057349152b2ddebaa1c 100755 (executable)
@@ -10,6 +10,7 @@ if test -z "$GIT_EXEC_PATH" || ! test -f "$GIT_EXEC_PATH/git-sh-setup" || {
        test ! "$GIT_EXEC_PATH" -ef "${PATH%%:*}" 2>/dev/null
 }
 then
+       basename=${0##*[/\\]}
        echo >&2 'It looks like either your git installation or your'
        echo >&2 'git-subtree installation is broken.'
        echo >&2
@@ -17,10 +18,10 @@ then
        echo >&2 " - If \`git --exec-path\` does not print the correct path to"
        echo >&2 "   your git install directory, then set the GIT_EXEC_PATH"
        echo >&2 "   environment variable to the correct directory."
-       echo >&2 " - Make sure that your \`${0##*/}\` file is either in your"
+       echo >&2 " - Make sure that your \`$basename\` file is either in your"
        echo >&2 "   PATH or in your git exec path (\`$(git --exec-path)\`)."
-       echo >&2 " - You should run git-subtree as \`git ${0##*/git-}\`,"
-       echo >&2 "   not as \`${0##*/}\`." >&2
+       echo >&2 " - You should run git-subtree as \`git ${basename#git-}\`,"
+       echo >&2 "   not as \`$basename\`." >&2
        exit 126
 fi