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

Re: [RFC PATCH v2 06/12] submodule--helper: add a '--stage' option to the 'config' sub command

From
Antonio Ospite <ao2@ao2.it>
Date
Aug 6, 2018, 10:58 UTC
Message-ID
<20180806125828.66fc99ef0b118e26e0b3e60d@ao2.it>
In-Reply-To
<xmqqbmajzadt.fsf@gitster-ct.c.googlers.com>

On Fri, 03 Aug 2018 09:24:14 -0700 Junio C Hamano <gitster@pobox.com> wrote:

Show 10 quoted lines
> Antonio Ospite <ao2@ao2.it> writes:
> 
> > The rationale behind the change is to close the circle started with 04
> > and 05 and stop referring to .gitmodules explicitly by file path in git
> > commands. The change is not strictly needed for the series, it's for
> > consistency sake.
> 
> Sorry, but I am still not quite sure what consistency you are
> referring to.
>
Hi Junio,

to recap: in previous patches we removed all instances of "git config -f .gitmodules" (read/write operations), because in that case encapsulating access to .gitmodules would directly enable us to add new functionality (i.e.: read from HEAD:.gitmodules).

So, to me, it looked more organic to remove also the last explicit reference to .gitmodules in git-submodule.sh ("git add -f .gitmodules", the "stage" operation), even if in this case no new behavior about staging is going to be added for the time being. that is: the change is not strictly necessary.

The consistency I was referring to is merely in the mechanism used to deal with .gitmodules: by always using "submodule--helper config".

As a side argument: in some previous discussion Stefan mentioned the possibility that, in the future, he may be interested to explore different locations for submodules configuration, like a special ref, to prevent .gitmodules from being in the working tree at all, not even for writing submodule configuration.

Having an opaque "stage submodule configuration" operation would prepare for that too, but as I said this is not my immediate goal.

Show 6 quoted lines
> I also do not see a reason why we want to stop referring to
> .gitmodules explicitly by name.  We do not hide the fact that
> in-tree .gitignore and .gitattributes files are used to hold the
> metainformation about the project tree, saying that it is an
> implementation detail.  Is there a good reason why .gitmodules
> should be different from these other two?

Not sure about that, but one difference I can see between .gitignore/.gitattributes and .gitmodules is that I got the impression that editing the latter by hand is strongly discouraged, if that is indeed the case a layer of indirection can make sense IMHO to make the actual file path less relevant.

Having said that I can drop patches 06/07 if this can help moving things forward; or if I had some success in convincing you I can improve the user interface (any advice?) and the commit message.

Thank you,
   Antonio
-- 
Antonio Ospite
https://ao2.it
https://twitter.com/ao2it

A: Because it messes up the order in which people normally read text.
   See http://en.wikipedia.org/wiki/Posting_style
Q: Why is top-posting such a bad thing?
Previous: Junio C HamanoNext: Junio C Hamano
Message 35 of 38 in “Make submodules work if .gitmodules is not checked out”
  1. 00/12 Make submodules work if .gitmodules is not checked outAntonio Ospite, Aug 2, 2018
  2. 01/12 submodule: add a print_config_from_gitmodules() helperAntonio Ospite, Aug 2, 2018
  3. Stefan BellerAug 2, 2018
  4. Antonio OspiteAug 9, 2018
  5. 10/12 t7416: add new test about HEAD:.gitmodules and not existing .gitmodulesAntonio Ospite, Aug 2, 2018
  6. Stefan BellerAug 2, 2018
  7. Antonio OspiteAug 9, 2018
  8. 07/12 submodule: use 'submodule--helper config --stage' to stage .gitmodulesAntonio Ospite, Aug 2, 2018
  9. 08/12 t7506: cleanup .gitmodules properly before setting up new scenarioAntonio Ospite, Aug 2, 2018
  10. Stefan BellerAug 2, 2018
  11. 12/12 submodule: remove the .gitmodules file when it is emptyAntonio Ospite, Aug 2, 2018
  12. Stefan BellerAug 2, 2018
  13. Antonio OspiteAug 3, 2018
  14. 11/12 dir: move is_empty_file() from builtin/am.c to dir.c and make it publicAntonio Ospite, Aug 2, 2018
  15. Stefan BellerAug 2, 2018
  16. Antonio OspiteAug 3, 2018
  17. 03/12 t7411: be nicer to future tests and really clean things upAntonio Ospite, Aug 2, 2018
  18. SZEDER GáborAug 2, 2018
  19. Stefan BellerAug 2, 2018
  20. Antonio OspiteAug 9, 2018
  21. Junio C HamanoAug 2, 2018
  22. 09/12 submodule: support reading .gitmodules even when it's not checked outAntonio Ospite, Aug 2, 2018
  23. Stefan BellerAug 2, 2018
  24. 02/12 submodule: factor out a config_set_in_gitmodules_file_gently functionAntonio Ospite, Aug 2, 2018
  25. 05/12 submodule: use the 'submodule--helper config' commandAntonio Ospite, Aug 2, 2018
  26. Stefan BellerAug 2, 2018
  27. 04/12 submodule--helper: add a new 'config' subcommandAntonio Ospite, Aug 2, 2018
  28. Stefan BellerAug 2, 2018
  29. Jeff KingAug 2, 2018
  30. Antonio OspiteAug 3, 2018
  31. 06/12 submodule--helper: add a '--stage' option to the 'config' sub commandAntonio Ospite, Aug 2, 2018
  32. Junio C HamanoAug 2, 2018
  33. Antonio OspiteAug 3, 2018
  34. Junio C HamanoAug 3, 2018
  35. Antonio OspiteAug 6, 2018
  36. Junio C HamanoAug 6, 2018
  37. Antonio OspiteAug 7, 2018
  38. Stefan BellerAug 6, 2018

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.