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

Re: [PATCH/RFC] Changing submodule foreach --recursive to be depth-first, --parent option to execute command in supermodule as well

From
Junio C Hamano <gitster@pobox.com>
Date
Mar 5, 2013, 18:34 UTC
Message-ID
<7vboaxu23y.fsf@alter.siamese.dyndns.org>
In-Reply-To
<CA+aSAWvQj2wuJX3ENNn7n_pMJjA6nauve5BLRugiTuhWN25Ctg@mail.gmail.com>
Eric Cousineau <eacousineau@gmail.com> writes:
> Would these be the correct behaviors of Heiko's implementation?

I do not think Heiko already has an implementation, but let's try to see how each example makes sense.

> git submodule foreach # Empty command, pre-order
> git submodule foreach --pre-order # Same behavior
> git submodule foreach --post-order # Empty command, post-order

OK. The last one shows "I am here" output differently from the other two, but otherwise they are all no-op.

> git submodule foreach 'frotz' # Do 'frotz' pre-order in each submodule
OK.  And it would be the same if you said either one of:
	git submodule foreach --pre-order 'frotz'
	git submodule foreach --pre-order='frotz'
> git submodule foreach --post-order 'frotz' # Do 'frotz' post-order in
> each submodule
OK.
> git submodule foreach --pre-order='frotz' --post-order='shimmy' # Do
> 'frotz' pre-order and 'shimmy' post-order in each submodule
OK.
> git submodule foreach --post-order='shimmy' 'frotz' # Invalid usage of
> the command
I would expect this to behave exactly the same as:
	git submodule foreach \
        	--post-order=shimmy \
                --pre-order=frotz
> git submodule foreach --post-order --pre-order #
I expect it to behave exactly the same as:
	git submodule foreach --post-order=: --pre-order=:
> It should not be too hard to have this functionality affect the
> --include-super command as well.
I would assume that
	git submodule foreach --pre-order=A --post-order=B --include-super
would be identical to running
	A &&
        git submodule foreach --pre-order=A --post-order=B &&
        B

I am not entirely convinced we would want --include-super in the first place, though. It does not belong to "submodule foreach"; it is doing something _outside_ the submoudules.

Previous: Eric CousineauNext: Jens Lehmann
Message 8 of 25 in “Changing submodule foreach --recursive to be depth-first, --parent option to execute command in supermodule as well”
  1. Changing submodule foreach --recursive to be depth-first, --parent option to execute command in supermodule as wellEric Cousineau, Mar 4, 2013
  2. Jens LehmannMar 4, 2013
  3. Junio C HamanoMar 4, 2013
  4. Eric CousineauMar 5, 2013
  5. Heiko VoigtMar 5, 2013
  6. Junio C HamanoMar 5, 2013
  7. Eric CousineauMar 5, 2013
  8. Junio C HamanoMar 5, 2013
  9. Jens LehmannMar 5, 2013
  10. Phil HordMar 5, 2013
  11. Jens LehmannMar 9, 2013
  12. Heiko VoigtMar 11, 2013
  13. Phil HordMar 12, 2013
  14. Eric CousineauMar 14, 2013
  15. Jens LehmannMar 18, 2013
  16. Eric CousineauMar 26, 2013
  17. Jens LehmannApr 2, 2013
  18. submodule foreach: Added in --post-order=<command> and adjusted code per Jens Lehmann's suggestionseacousineau, Apr 13, 2013
  19. Jens LehmannApr 14, 2013
  20. Jens LehmannMar 18, 2013
  21. Eric CousineauMar 26, 2013
  22. Eric CousineauMar 26, 2013
  23. Junio C HamanoMar 26, 2013
  24. Junio C HamanoMar 26, 2013
  25. Eric CousineauApr 13, 2013

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.