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

Re: Composing git repositories

From
Jens Lehmann <jens.lehmann@web.de>
Date
Mar 28, 2013, 20:17 UTC
Message-ID
<5154A577.2020103@web.de>
In-Reply-To
<CALkWK0nreJZX4msFET0a7cuUMWNbQhhqy+ezrkqYGqL4_a2duA@mail.gmail.com>
Am 28.03.2013 11:01, schrieb Ramkumar Ramachandra:
Show 25 quoted lines
> Jonathan Nieder wrote:
>> Do you mean that you wish you could ignore subrepository boundaries
>> and use commands like
>>
>>         git clone --recurse-submodules http://git.zx2c4.com/cgit
>>         cd cgit
>>         vi git/cache.h
>>         ... edit edit edit ...
>>         git add --recurse-submodules git/cache.h
>>         git commit --recurse-submodules
>>         git push --recurse-submodules
>>
>> , possibly with configuration to allow the --recurse-submodules to be
>> implied, and have everything work out well?
> 
> Do you realize how difficult this is to implement?  We'll need to
> patch all the git commands to essentially do what we'd get for free if
> the submodule were a tree object instead of a commit object (although
> I'm not saying that's the Right thing to do).  Some caveats:
> 
> - If we maintain one global index, and try to emulate git-subtree
> using submodules, we've lost.  It's going to take freakin' ages to
> stat billions of files across hundreds of nested sumodules.  One major
> advantage of having repository boundaries is separate object stores,
> indexes, worktrees: little ones that git is designed to work with.

Are you aware that current Git code already stats all files across all submodules recursive by default? So (again) no problem here, we do that already (unless configured otherwise).

> - Auto-splitting commits that touch multiple submodules/ superproject
> at once.  Although git-subtree does this, I think it's horribly ugly.

You don't like it, but what technical argument is hidden here I'm missing?

> - Auto-propagating commits upwards to the superproject is another big
> challenge.  I think the current design of anchoring to a specific
> commit SHA-1 has its usecases, but is unwieldy when things become big.
>  We have to fix that first.

What??? Again there is nothing to "fix" here, "anchoring to a specific commit SHA-1" is *the* most prominent use case (think reproducibility of the whole work tree), floating submodules are the oddball here.

Previous: Jonathan NiederNext: Jens Lehmann
Message 14 of 43 in “Composing git repositories”
  1. Ramkumar RamachandraMar 26, 2013
  2. Junio C HamanoMar 26, 2013
  3. Ramkumar RamachandraMar 27, 2013
  4. Junio C HamanoMar 27, 2013
  5. Ramkumar RamachandraMar 27, 2013
  6. Junio C HamanoMar 27, 2013
  7. Jonathan NiederMar 27, 2013
  8. Junio C HamanoMar 27, 2013
  9. Jonathan NiederMar 27, 2013
  10. Ramkumar RamachandraMar 28, 2013
  11. Jens LehmannMar 28, 2013
  12. Ramkumar RamachandraMar 28, 2013
  13. Jonathan NiederMar 28, 2013
  14. Jens LehmannMar 28, 2013
  15. Jens LehmannMar 27, 2013
  16. Ramkumar RamachandraMar 28, 2013
  17. Jens LehmannMar 28, 2013
  18. Ramkumar RamachandraMar 31, 2013
  19. Jonathan NiederMar 31, 2013
  20. Ramkumar RamachandraApr 2, 2013
  21. Jeff KingApr 2, 2013
  22. Ramkumar RamachandraApr 2, 2013
  23. Jens LehmannApr 2, 2013
  24. Junio C HamanoApr 2, 2013
  25. Junio C HamanoApr 4, 2013
  26. Duy NguyenApr 5, 2013
  27. Junio C HamanoApr 5, 2013
  28. Duy NguyenApr 5, 2013
  29. Jens LehmannApr 5, 2013
  30. Phil HordMar 31, 2013
  31. Jens LehmannApr 1, 2013
  32. Phil HordApr 1, 2013
  33. Ramkumar RamachandraApr 2, 2013
  34. Jonathan NiederApr 2, 2013
  35. Junio C HamanoApr 2, 2013
  36. Ramkumar RamachandraApr 2, 2013
  37. Jonathan NiederApr 2, 2013
  38. Ramkumar RamachandraApr 2, 2013
  39. Ramkumar RamachandraApr 2, 2013
  40. Jens LehmannApr 2, 2013
  41. Jens LehmannApr 1, 2013
  42. Seth RobertsonApr 1, 2013
  43. Ramkumar RamachandraApr 2, 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.