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

Re: [PATCH 11/15] diff: ignore submodules excluded by groups

From
Junio C Hamano <gitster@pobox.com>
Date
May 5, 2016, 23:07 UTC
Message-ID
<xmqqfutw85oz.fsf@gitster.mtv.corp.google.com>
In-Reply-To
<CAGZ79kYKbef7DTkmE3Vf3C=PLfgB3xf0ikVKHFUfQ8+KkgGHPg@mail.gmail.com>
Stefan Beller <sbeller@google.com> writes:
> I am aware that other operations such as a build system would be glad to
> have the contents of the submodules there. But those would not use a
> restrictive default group?

The set of submodules you "init" to the working tree are the ones that are interesting to you. So once the tree is populated, you do not ever have to look at the "defaultGroup" configuration. You just need to look at the working tree.

But there is a chicken-and-egg problem. What should happen after the initial clone, or you switched to a different branch in the superproject.

The concept of "default" would help by limiting these "checkout to reflect my interest to my working tree" step.

So "if the user inititializes a submodule and we detect that it is not in the default, add it to the default configuration" pretty much feels like a tail wagging a dog arrangement to me.

Then there is another interesting issue: what should happen when the project added a submodule when you decided what your "default" set should be and wrote it in your configuration already. I suspect that an idea similar to "the elaborate thing proposed (by whom I no longer rememvber) in the ancient days" I mentioned earlier might leads us to a nice solution. When you define a default group, you remember what the set of available submodules were, and tie your choice to that "available set".

E.g. there may be submodules A, B and C in .gitmodules, and you chose to record a "default" that contains only A and B. The exact way you chose does not matter; it could have been using labels, or you may have explicitly named it. When you record, you remember that the decision of using A and B was made when A, B and C were the available submodules. Next time when you see .gitmodules talks about A, B and D but no longer C, then instead of using the previous "default" choice blindly, you ask. If the user says it still is the right "default" to use A and B, then you _also_ remember the set. So that when the user switches between the state of the project with submodules A, B and C (original) and A, B and D (updated), the user does not have to answer the same question twice.

Previous: Stefan BellerNext: Junio C Hamano
Message 38 of 48 in “submodule groups (once again)”
  1. 00/15 submodule groups (once again)Stefan Beller, Apr 26, 2016
  2. 01/15 string_list: add string_list_duplicateStefan Beller, Apr 26, 2016
  3. Junio C HamanoApr 26, 2016
  4. Stefan BellerApr 27, 2016
  5. Junio C HamanoApr 27, 2016
  6. Stefan BellerApr 27, 2016
  7. Junio C HamanoApr 27, 2016
  8. Stefan BellerApr 27, 2016
  9. 02/15 submodule doc: write down what we want to achieve in this seriesStefan Beller, Apr 26, 2016
  10. Junio C HamanoApr 26, 2016
  11. 03/15 submodule add: label submodules if asked toStefan Beller, Apr 26, 2016
  12. Junio C HamanoApr 26, 2016
  13. Jacob KellerApr 26, 2016
  14. Stefan BellerApr 26, 2016
  15. Jacob KellerApr 27, 2016
  16. 04/15 submodule-config: keep labels aroundStefan Beller, Apr 26, 2016
  17. 05/15 submodule-config: check if submodule a submodule is in a groupStefan Beller, Apr 26, 2016
  18. Junio C HamanoApr 26, 2016
  19. Junio C HamanoApr 26, 2016
  20. Stefan BellerApr 27, 2016
  21. 06/15 submodule init: redirect stdout to stderrStefan Beller, Apr 26, 2016
  22. Junio C HamanoApr 29, 2016
  23. Stefan BellerApr 29, 2016
  24. 07/15 submodule deinit: loose requirement for giving '.'Stefan Beller, Apr 26, 2016
  25. Junio C HamanoApr 29, 2016
  26. 08/15 submodule--helper list: respect submodule groupsStefan Beller, Apr 26, 2016
  27. Junio C HamanoApr 29, 2016
  28. 09/15 submodule--helper init: respect submodule groupsStefan Beller, Apr 26, 2016
  29. 10/15 submodule--helper update_clone: respect submodule groupsStefan Beller, Apr 26, 2016
  30. 11/15 diff: ignore submodules excluded by groupsStefan Beller, Apr 26, 2016
  31. Junio C HamanoApr 29, 2016
  32. Stefan BellerApr 29, 2016
  33. Stefan BellerMay 5, 2016
  34. Junio C HamanoMay 5, 2016
  35. Stefan BellerMay 5, 2016
  36. Junio C HamanoMay 5, 2016
  37. Stefan BellerMay 5, 2016
  38. Junio C HamanoMay 5, 2016
  39. Junio C HamanoMay 6, 2016
  40. Stefan BellerMay 6, 2016
  41. Junio C HamanoMay 6, 2016
  42. 12/15 git submodule summary respects groupsStefan Beller, Apr 26, 2016
  43. Junio C HamanoApr 29, 2016
  44. 13/15 cmd_status: respect submodule groupsStefan Beller, Apr 26, 2016
  45. 14/15 cmd_diff: respect submodule groupsStefan Beller, Apr 26, 2016
  46. 15/15 clone: allow specification of submodules to be clonedStefan Beller, Apr 26, 2016
  47. Junio C HamanoApr 26, 2016
  48. Junio C HamanoApr 26, 2016

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.