contrib/subtree: t/t7900-subtree.sh: test 21 fails when environment variable 'prefix' is set
Hi,
Test 21 from contrib/subtree/t/t7900-subtree.sh fails when an environment variable 'prefix' is set. For instance here is what happens when prefix=/usr:
expecting success:
echo "You must provide the --prefix option." > expected &&
test_must_fail git subtree split > actual 2>&1 &&
test_debug "printf 'expected: '" &&
test_debug "cat expected" &&
test_debug "printf 'actual: '" &&
test_debug "cat actual" &&
test_cmp expected actual &&
rm -f expected actualactual renamed from expected +0 -1
@@ -1 +1,9 @@ -You must provide the --prefix option.
fatal: /usr: '/usr' is outside repository
fatal: /usr: '/usr' is outside repository
fatal: /usr: '/usr' is outside repository
fatal: /usr: '/usr' is outside repository
fatal: /usr: '/usr' is outside repository
fatal: /usr: '/usr' is outside repository
fatal: /usr: '/usr' is outside repository
fatal: /usr: '/usr' is outside repository
+No new revisions were found
not ok 21 - Check that prefix argument is required for split
Thanks,
_g.
PATCH 1/1 subtree: initialize "prefix" variable
Quoted 3 lines · Gilles Filippini
Test 21 from
contrib/subtree/t/t7900-subtree.shfails when an environment variable 'prefix' is set. For instance here is what happens when prefix=/usr:
I think it just needs the patch below.
-- >8 --
We parse the "--prefix" command-line option into the "$prefix" shell variable. However, if we do not see such an option, the variable is left with whatever value it had in the environment. We should initialize it to a known value, like we do for other variables.
---
I checked, and this looks like the only variable in this situation.
contrib/subtree/git-subtree.sh | 1 + 1 file changed, 1 insertion(+)
contrib/subtree/git-subtree.sh +1 -0
@@ -46,6 +46,7 @@ ignore_joins= annotate= squash= message= +prefix= debug() {
Signature · 1 line
1.9.0.532.gc4c322d
Re: [PATCH] subtree: initialize "prefix" variable
Quoted 7 lines · Jeff King
Quoted 3 lines · Gilles Filippini
Test 21 from
contrib/subtree/t/t7900-subtree.shfails when an environment variable 'prefix' is set. For instance here is what happens when prefix=/usr:I think it just needs the patch below.
Gilles submitted this same patch [1] a couple weeks ago but it appears to have been lost in the noise. Your commit message is a bit nicer.
[1]: http://thread.gmane.org/gmane.comp.version-control.git/243103/
Quoted 28 lines
-- >8 --
We parse the "--prefix" command-line option into the "$prefix" shell variable. However, if we do not see such an option, the variable is left with whatever value it had in the environment. We should initialize it to a known value, like we do for other variables.Signed-off-by Jeff King <[email protected]>---
I checked, and this looks like the only variable in this situation.contrib/subtree/git-subtree.sh | 1 + 1 file changed, 1 insertion(+)contrib/subtree/git-subtree.sh +1
-1@@ -46,6 +46,7 @@ ignore_joins= annotate= squash= message= +prefix= debug() { --1.9.0.532.gc4c322d
Re: [PATCH] subtree: initialize "prefix" variable
Quoted 7 lines · Eric Sunshine
Quoted 6 lines · Jeff King
Quoted 3 lines · Gilles Filippini
Test 21 from
contrib/subtree/t/t7900-subtree.shfails when an environment variable 'prefix' is set. For instance here is what happens when prefix=/usr:
Quoted 6 lines
Quoted 1 line
I think it just needs the patch below.
Gilles submitted this same patch [1] a couple weeks ago but it appears to have been lost in the noise. Your commit message is a bit nicer.
[1]: http://thread.gmane.org/gmane.comp.version-control.git/243103/
Ah, sorry Gilles, I completely missed that. Junio, if you pick this up, please feel free to use text from my commit message as you see fit, but mark Gilles as the author.
Thanks, Eric, for pointing it out.
-Peff
Quoted 20 lines · Gilles Filippini
Test 21 from
contrib/subtree/t/t7900-subtree.shfails when an environment variable 'prefix' is set. For instance here is what happens when prefix=/usr:expecting success:
echo "You must provide the --prefix option." > expected && test_must_fail git subtree split > actual 2>&1 && test_debug "printf 'expected: '" && test_debug "cat expected" && test_debug "printf 'actual: '" && test_debug "cat actual" && test_cmp expected actual && rm -f expected actualactual renamed from expected +0
-1@@ -1 +1,9 @@ -You must provide the --prefix option.fatal: /usr: '/usr' is outside repository
fatal: /usr: '/usr' is outside repository
Quoted 8 lines
fatal: /usr: '/usr' is outside repository
fatal: /usr: '/usr' is outside repository
fatal: /usr: '/usr' is outside repository
fatal: /usr: '/usr' is outside repository
fatal: /usr: '/usr' is outside repository
fatal: /usr: '/usr' is outside repository
+No new revisions were found
not ok 21 - Check that prefix argument is required for split
Thanks. Although I do not use nor touch git-subtree, I am reasonably confident that this patch should fix it.
-- >8 --
Subject: subtree: initialise all variables to known state
Parsing the command line options may set prefix to the given value with --prefix=value or an empty string with --no-prefix, but the script forgets to protect against a stray environment variable.
Make sure all the variables that can be assigned in the command line parsing are initialized to empty.
--- contrib/subtree/git-subtree.sh | 1 + 1 file changed, 1 insertion(+)
contrib/subtree/git-subtree.sh +1 -0
@@ -46,6 +46,7 @@ ignore_joins= annotate= squash= message= +prefix= debug() {