t5801-remote-helpers.sh fails
Hej,
on peff/pu t5801 fails, the error is in git-remote-testgit, please see below.
That's on my Mac OS X box.
I haven't digged further into the test case, but it looks as if
"[-+]A make NAMEs associative arrays"
is not supported on this version of bash.
/Torsten
/Users/tb/projects/git/git.peff/git-remote-testgit: line 64: declare: -A: invalid option
declare: usage: declare [-afFirtx] [-p] [name[=value] ...] /Users/tb/projects/git/git.peff/git-remote-testgit: line 66: refs/heads/master: division by 0 (error token is "/master")
error: fast-export died of signal 13
fatal: Error while running fast-export
Hi,
Quoted 10 lines · Torsten Bögershausen
on peff/pu t5801 fails, the error is in git-remote-testgit, please see below.
That's on my Mac OS X box.
I haven't digged further into the test case, but it looks as if "[-+]A make NAMEs associative arrays"
is not supported on this version of bash.
/Torsten
Quoted 5 lines
/Users/tb/projects/git/git.peff/git-remote-testgit: line 64: declare: -A: invalid option
declare: usage: declare [-afFirtx] [-p] [name[=value] ...] /Users/tb/projects/git/git.peff/git-remote-testgit: line 66: refs/heads/master: division by 0 (error token is "/master")
error: fast-export died of signal 13
fatal: Error while running fast-export
What is your bash --version?
Signature · 1 line
Felipe Contreras
Quoted 14 lines · Felipe Contreras
Hi,
Quoted 10 lines · Torsten Bögershausen
on peff/pu t5801 fails, the error is in git-remote-testgit, please see below.
That's on my Mac OS X box.
I haven't digged further into the test case, but it looks as if "[-+]A make NAMEs associative arrays"
is not supported on this version of bash.
/Torsten
Quoted 8 lines
Quoted 5 lines
/Users/tb/projects/git/git.peff/git-remote-testgit: line 64: declare: -A: invalid option
declare: usage: declare [-afFirtx] [-p] [name[=value] ...] /Users/tb/projects/git/git.peff/git-remote-testgit: line 66: refs/heads/master: division by 0 (error token is "/master")
error: fast-export died of signal 13
fatal: Error while running fast-exportWhat is your bash --version?
bash --version
GNU bash, version 3.2.48(1)-release (x86_64-apple-darwin10.0) Copyright (C) 2007 Free Software Foundation, Inc.
On the other hand, Documentation/CodingGuidelines says:
- No shell arrays.
Could we use perl to have arrays?
/Torsten
Quoted 27 lines · Torsten Bögershausen
Quoted 26 lines · Felipe Contreras
Hi,
Quoted 18 lines · Torsten Bögershausen
on peff/pu t5801 fails, the error is in git-remote-testgit, please see below.
That's on my Mac OS X box.
I haven't digged further into the test case, but it looks as if "[-+]A make NAMEs associative arrays"
is not supported on this version of bash.
/Torsten/Users/tb/projects/git/git.peff/git-remote-testgit: line 64: declare: -A:
invalid option
declare: usage: declare [-afFirtx] [-p] [name[=value] ...] /Users/tb/projects/git/git.peff/git-remote-testgit: line 66:
refs/heads/master: division by 0 (error token is "/master")
error: fast-export died of signal 13
fatal: Error while running fast-export
Quoted 5 lines
Quoted 2 lines
What is your bash --version?
bash --version
GNU bash, version 3.2.48(1)-release (x86_64-apple-darwin10.0) Copyright (C) 2007 Free Software Foundation, Inc.
I see, that version indeed doesn't have associative arrays.
Quoted 2 lines
On the other hand,
Documentation/CodingGuidelinessays:
- No shell arrays.
Yeah, for shell code I guess, but this is bash code.
Quoted 1 line
Could we use perl to have arrays?
I think the code in perl would be harder to follow, and this is meant not only as a test, but also as a reference.
I'm not exactly sure what we should do here:
a) remove the code (would not be so good as a reference)
b) enable the code conditionally based on the version of bash (harder to read)
c) replace the code without associative arrays (will be much more complicated and ugly)
d) add a check for the bash version to the top of the test in t/
I'm leaning towards d), followed by b).
If only there was a clean way to do this, so c) would not be so ugly.
After investigating different optins this seems to be the best:
join -e empty -o '0 1.2 2.2' -a 2 <(echo "$before") <(echo "$after") | while read e a b; do test "$a" == "$b" && continue echo "changed $e" done
But to me seems a bit harder to grasp. Not sure.
Cheers.
Signature · 1 line
Felipe Contreras
Quoted 66 lines · Felipe Contreras
Quoted 27 lines · Torsten Bögershausen
Quoted 26 lines · Felipe Contreras
Hi,
Quoted 18 lines · Torsten Bögershausen
on peff/pu t5801 fails, the error is in git-remote-testgit, please see below.
That's on my Mac OS X box.
I haven't digged further into the test case, but it looks as if "[-+]A make NAMEs associative arrays"
is not supported on this version of bash.
/Torsten/Users/tb/projects/git/git.peff/git-remote-testgit: line 64: declare: -A:
invalid option
declare: usage: declare [-afFirtx] [-p] [name[=value] ...] /Users/tb/projects/git/git.peff/git-remote-testgit: line 66:
refs/heads/master: division by 0 (error token is "/master")
error: fast-export died of signal 13
fatal: Error while running fast-exportQuoted 5 lines
Quoted 2 lines
What is your bash --version?
bash --version
GNU bash, version 3.2.48(1)-release (x86_64-apple-darwin10.0) Copyright (C) 2007 Free Software Foundation, Inc.I see, that version indeed doesn't have associative arrays.
Quoted 2 lines
On the other hand,
Documentation/CodingGuidelinessays:
- No shell arrays.Yeah, for shell code I guess, but this is bash code.
Quoted 1 line
Could we use perl to have arrays?
I think the code in perl would be harder to follow, and this is meant not only as a test, but also as a reference.
I'm not exactly sure what we should do here:
a) remove the code (would not be so good as a reference)
b) enable the code conditionally based on the version of bash (harder to read)
c) replace the code without associative arrays (will be much more complicated and ugly)
d) add a check for the bash version to the top of the test in t/I'm leaning towards d), followed by b).
If only there was a clean way to do this, so c) would not be so ugly.
After investigating different optins this seems to be the best:
join -e empty -o '0 1.2 2.2' -a 2 <(echo "$before") <(echo "$after") | while read e a b; do test "$a" == "$b" && continue echo "changed $e" done
Quoted 4 lines
But to me seems a bit harder to grasp. Not sure.
Cheers.
Hi again,
I managed to have a working solution for
"d) add a check for the bash version to the top of the test in t/" Please see diff below.
This unbreaks the test suite here.
Is this a good way forward?
Filipe, does the code line you mention above work for you?
If yes: I can test it here, if you send it as a patch.
/Torsten
t/t5801-remote-helpers.sh +9 -0
@@ -13,6 +13,15 @@ compare_refs() { test_cmp expect actual } +cat >"testbashArray" <<-EOF + declare -A assa +EOF + +/bin/bash testbashArray || { + skip_all='t5801. /bin/bash does not handle associative arrays' + test_done +} + test_expect_success 'setup repository' ' git init server && (cd server &&
Hi,
Quoted 10 lines · Torsten Bögershausen
I managed to have a working solution for
"d) add a check for the bash version to the top of the test in t/" Please see diff below.This unbreaks the test suite here.
Is this a good way forward?Filipe, does the code line you mention above work for you?
If yes: I can test it here, if you send it as a patch.
It's already sent:
http://article.gmane.org/gmane.comp.version-control.git/209364
Signature · 1 line
Felipe Contreras
Quoted 11 lines · Felipe Contreras
Hi,
Quoted 7 lines · Torsten Bögershausen
I managed to have a working solution for
"d) add a check for the bash version to the top of the test in t/" Please see diff below.This unbreaks the test suite here.
Is this a good way forward?
Quoted 7 lines
Quoted 3 lines
Filipe, does the code line you mention above work for you?
If yes: I can test it here, if you send it as a patch.
It's already sent:
http://article.gmane.org/gmane.comp.version-control.git/209364
Thanks for working on it, and sorry that you need to remind me:
I had the V5 series already on my harddisk, but forgot to test it. It applied on v.1.8.0 with the following results:
ok 1 - setup repository
ok 2 - cloning from local repo
ok 3 - create new commit on remote
ok 4 - pulling from local repo
ok 5 - pushing to local repo
ok 6 - fetch new branch
ok 7 - fetch multiple branches
ok 8 - push when remote has extra refs
ok 9 - push new branch by name
not ok 10 - push new branch with old:new refspec # TODO known breakage ok 11 - cloning without refspec
ok 12 - pulling without refspecs
not ok 13 - pushing without refspecs # TODO known breakage not ok 14 - pulling with straight refspec # TODO known breakage not ok 15 - pushing with straight refspec # TODO known breakage not ok 16 - pulling without marks # TODO known breakage
not ok 17 - pushing without marks # TODO known breakage
ok 18 - push ref with existing object
# still have 6 known breakage(s) /Torsten