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

Re: [PATCH] Teach git submodule update to use distributed repositories

From
Petr Baudis <pasky@suse.cz>
Date
Jul 17, 2008, 14:38 UTC
Message-ID
<20080717143833.GV32184@machine.or.cz>
In-Reply-To
<320075ff0807170508j3d3c1ef8j49df576fc47debe2@mail.gmail.com>
On Thu, Jul 17, 2008 at 01:08:19PM +0100, Nigel Magnay wrote:
Show 6 quoted lines
> When doing a git submodule update, it fetches any missing submodule
> commits from the repository specified in .gitmodules. If you instead
> want to pull from another repository, you currently need to do a fetch
> in each submodule by hand.
> 
> Signed-off-by: Nigel Magnay <nigel.magnay@gmail.com>

I don't think it is good idea to hijack git submodule update for this. This command has a specific purpose:

	"When I pulled new version of the main tree, bring my
	submodule checkouts in line with whatever is specified
	within the new tree revision."

Your usage scenario has nothing to do with that, it is about "batch manipulation" of all the submodules at once in a certain way. I think using the same command for two conceptually pretty much unrelated purposes will only clutter up the UI, and we should think of a better general interface pattern for these operations.

In the new git-submodule description, it is said that
	"This command will manage the tree entries and contents of the
	gitmodules file for you."

and I think we should keep it at this; anything that is related to submodules, but does not do this directly, would IMHO live better as some kind of "submodule-recursive" extension of other existing commands. Say, would this particular need of yours be served by a hypothetical command like

	git checkout --submodules nifty

to check out branch nifty of all submodules or am I misunderstanding what are you trying to achieve?

If not, then actually even _much_ more elegant solution for this particular problem would be to store submodule.*.branch in .gitmodules appropriate to the -b parameter of git submodule add. Then, in branch 'nifty' of the main project, you would set submodule.*.branch to 'nifty' too. Then, in order to bring all the submodules to the latest version, I could imagine something like

	git pull --submodules

(and possibly just abort at the first sight of a conflict, for starters).

Let's figure up some UI that is nifty and clean. ;-)
-- 
				Petr "Pasky" Baudis
GNU, n. An animal of South Africa, which in its domesticated state
resembles a horse, a buffalo and a stag. In its wild condition it is
something like a thunderbolt, an earthquake and a cyclone. -- A. Pierce
Previous: Johannes SchindelinNext: Nigel Magnay
Message 3 of 23 in “Teach git submodule update to use distributed repositories”
  1. Teach git submodule update to use distributed repositoriesNigel Magnay, Jul 17, 2008
  2. Johannes SchindelinJul 17, 2008
  3. Petr BaudisJul 17, 2008
  4. Nigel MagnayJul 17, 2008
  5. Johannes SchindelinJul 17, 2008
  6. Nigel MagnayJul 17, 2008
  7. Johannes SchindelinJul 17, 2008
  8. Nigel MagnayJul 17, 2008
  9. Petr BaudisJul 17, 2008
  10. Nigel MagnayJul 18, 2008
  11. Jakub NarebskiJul 18, 2008
  12. Junio C HamanoJul 18, 2008
  13. Jakub NarebskiJul 18, 2008
  14. Nigel MagnayJul 18, 2008
  15. Petr BaudisJul 18, 2008
  16. Nigel MagnayJul 18, 2008
  17. Petr BaudisJul 18, 2008
  18. Nigel MagnayJul 18, 2008
  19. Petr BaudisJul 18, 2008
  20. Nigel MagnayJul 18, 2008
  21. Petr BaudisJul 18, 2008
  22. Mark LevedahlJul 18, 2008
  23. Nigel MagnayJul 21, 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.