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

Re: Re* git submodule output on invalid command

From
Junio C Hamano <gitster@pobox.com>
Date
Sep 6, 2008, 05:03 UTC
Message-ID
<7vd4jhuard.fsf@gitster.siamese.dyndns.org>
In-Reply-To
<20080906042217.GB18930@gmail.com>
David Aguilar <davvid@gmail.com> writes:
Show 15 quoted lines
> On  0, Junio C Hamano <gitster@pobox.com> wrote:
>> Pieter de Bie <pdebie@ai.rug.nl> writes:
>> ...
>> >  module_list()
>> >  {
>> > -       git ls-files --stage -- "$@" | grep '^160000 '
>> > +       git ls-files --stage -- "$@" | grep '^160000 ' ||
>> > +       if test -z "$@"; then
>> 
>> Shell nit; this must be "$*" not "$@", right?
>
> I added the module_list() function when moving the duplicated
> code into a separate function.  The code was lifted verbatim.
> I can submit a patch cleaning that up if it should indeed use
> "$*".  Just let me know.

Nothing you did is involved in this nit; I was talking about "test -z" argument.

	cmd "$@"

gives N separate argument to the "cmd", as if each of them is surrounded by a dq pair, i.e.

	cmd "$1" "$2" "$3"...
while
	cmd "$*"

gives a single argument to the "cmd", all separated with the first character of $IFS (typically a SP), i.e.

	cmd "$1 $2 $3..."

which is what the "test -z" above would want to test (testing $# is Ok for the purpose of this test as well).

The "$@" you moved is the argument given to ls-files; that one should be "$@" and replacing it to "$*" would be wrong.

Previous: David Aguilar
Message 4 of 4 in “git submodule output on invalid command”
  1. Pieter de BieSep 5, 2008
  2. Re* git submodule output on invalid commandJunio C Hamano, Sep 5, 2008
  3. David AguilarSep 6, 2008
  4. Junio C HamanoSep 6, 2008

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.