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

Re: [PATCH 1/2] git-submodule: replace duplicated code with a module_list function

From
Junio C Hamano <gitster@pobox.com>
Date
Aug 23, 2008, 01:01 UTC
Message-ID
<7vpro04k97.fsf@gitster.siamese.dyndns.org>
In-Reply-To
<48AF5BA0.5050001@gmail.com>
Mark Levedahl <mlevedahl@gmail.com> writes:
Show 8 quoted lines
> As the command is required, while pathspec is optional, the latter
> should require the option, not the former. How about...
>
>    $ git submodule foreach [-l pathspec] 'command'
>
> or
>
>    $ git submodule foreach [<pathspec> --] 'command'

Neither would fly well. For all normal git command, pathspec comes after the double dash.

And I think it is probably a mistake to think "the command is required" as anything holy. "submodule foreach" looks very much like an index aware "find". Perhaps we could even make the lack of 'command' to default to "echo its name", just like "find ." and "find . -print" are equivalent (I am not seriously suggesting this, though. Read on).

Having said all that, I think you can have best of both worlds by doing something like this:

 - If you do not have -c 'command' or any option, then everything is
   command and you cannot limit with pathspecs.  This is the original
   syntax.
 - If you do have options to "foreach", then -c 'command' string is the
   command, and perhaps the foreach subcommand will gain other options
   over time, including possible -- pathspec separator.  The remainder of
   the command line after options are processed are pathspecs that limit
   the ls-files.

I do not think it is a defect that we do not allow pathspec limited foreach subcommand. Teaching foreach to take pathspecs is an independent topic if somebody has such an itch.

As a conclusion of this discussion, I think David's [1/2] is fine as-is.
Thanks.
Previous: Mark Levedahl
Message 8 of 8 in “git-submodule: replace duplicated code with a module_list function”
  1. 1/2 git-submodule: replace duplicated code with a module_list functionDavid Aguilar, Aug 22, 2008
  2. 2/2 git-submodule: add "sync" commandDavid Aguilar, Aug 22, 2008
  3. Junio C HamanoAug 22, 2008
  4. Junio C HamanoAug 22, 2008
  5. Mark LevedahlAug 23, 2008
  6. Junio C HamanoAug 23, 2008
  7. Mark LevedahlAug 23, 2008
  8. Junio C HamanoAug 23, 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.