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

Re: [PATCH 03/15] submodule add: label submodules if asked to

From
Jacob Keller <jacob.keller@gmail.com>
Date
Apr 27, 2016, 03:24 UTC
Message-ID
<CA+P7+xpMhH+dU3y6ueGZ+1oRWdwE+9yt1u6CqJSSpq4f-0ta5Q@mail.gmail.com>
In-Reply-To
<CAGZ79kZfGVhMweP_Sqx1dSAif6L46dneXgKYtEozNuxxay5TOg@mail.gmail.com>
On Tue, Apr 26, 2016 at 4:19 PM, Stefan Beller <sbeller@google.com> wrote:
Show 15 quoted lines
> On Tue, Apr 26, 2016 at 3:50 PM, Jacob Keller <jacob.keller@gmail.com> wrote:
>> On Tue, Apr 26, 2016 at 1:50 PM, Stefan Beller <sbeller@google.com> wrote:
>>> When adding new submodules, you can specify the
>>> label(s) the submodule belongs to by giving one or more
>>> --label arguments. This will record each label in the
>>> .gitmodules file as a value of the key
>>> "submodule.$NAME.label".
>>>
>>
>> Ok so labels will be in the .gitmodules file. This means that if we go
>> back in history using git bisect or something similar, we'll
>> potentially change what the default submodules are for example?
>
> Good point! Yes that's exactly what we want.
>
Ok. That makes sense.
Show 5 quoted lines
> Ideally (read: in a later patch series), checkout will automatically
> checkout submodules for you if you have configured `submodule.updateOnCheckout`,
> such that switching old and new revisions will add or delete
> submodules automatically.
>
This is something I definitely would like to be able to tell people.
Show 23 quoted lines
>>
>> This is sort of why having some submodule data appear in the
>> .git/config file is useful since it helps keep things like the remote
>> url safe from being updated when doing this sort of thing.
>
> (Unrelated, but my thoughts on this)
> The remote url mechanism is broken with the .gitmodules file in some use cases:
> Consider there is an upstream "kernel.org" which hosts a repository with
> submodules. Now you want to mirror that superproject to "kernel.mymirror.org"
> and you start with
>
>     git clone --mirror git://kernel.org/superproject
>
> When the superproject uses relative URLs for the submodules, this will
> break your mirror,
> if you did not mirror them exactly with the same relative path. Then
> cloning from
> your mirror will result in broken submodule URLs.
>
> So you would want an additional mechanism for URLs. Jonathan came up
> with the idea of having another configuration file in a refs/submodules/config
> branch which essentially allows to annotate/enhance the .gitmodules file.
>
I like the idea of refs/submodules/config.
Show 26 quoted lines
> So in such a configuration you could say:
>
>     defaultRelativeURLBase = kernel.org
>     [submodule."foo"]
>         relativeURLBase = kernel.mymirror.org
>         protocol = ssh
>         # ssh as opposed to git:// which was inherited from the superproject
>
> which allows finer controls of submodule/repository mirroring.
> As the refs/submodule/configuration is not part of the history of the
> superproject,
> mirroring can be done without changing history, but still having URLs changed to
> the internal mirror.
>
>>
>> I am not sure if labels will be that important in this case?
>
> I am not sure. If it turns out to be a problem, maybe we can
> introduce a hook, that will be called on adding new submodules via lables?
>
> Thanks,
> Stefan
>
>>
>> Thanks,
>> Jake
Previous: Stefan BellerNext: Stefan Beller
Message 15 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.