git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: t5801-remote-helpers.sh fails

From
Felipe Contreras <felipe.contreras@gmail.com>
Date
Nov 10, 2012, 22:05 UTC
Message-ID
<CAMP44s2yenQKSgdUXfZP+yDJJ+bdveyms=SQ+3ptPvpT6D0hsg@mail.gmail.com>
In-Reply-To
<509EA8EE.1030908@web.de>
On Sat, Nov 10, 2012 at 8:20 PM, Torsten Bögershausen <tboegi@web.de> wrote:
Show 32 quoted lines
> On 11/10/2012 08:15 PM, Felipe Contreras wrote:
>>
>> Hi,
>>
>> On Sat, Nov 10, 2012 at 2:48 PM, Torsten Bögershausen <tboegi@web.de>
>> wrote:
>>
>>> 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
>>
>>
>> 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.
> On the other hand, Documentation/CodingGuidelines says:
>   - No shell arrays.
Yeah, for shell code I guess, but this is bash code.
> 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.
-- 
Felipe Contreras
Previous: Torsten BögershausenNext: Torsten Bögershausen
Message 4 of 7 in “t5801-remote-helpers.sh fails”
  1. Torsten BögershausenNov 10, 2012
  2. Felipe ContrerasNov 10, 2012
  3. Torsten BögershausenNov 10, 2012
  4. Felipe ContrerasNov 10, 2012
  5. Torsten BögershausenNov 18, 2012
  6. Felipe ContrerasNov 18, 2012
  7. Torsten BögershausenNov 18, 2012

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.