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

Re: [PATCH/RFC 3/7] git-submodule: Fall back on .gitmodules if info not found in $GIT_DIR/config

From
Ping Yin <pkufranky@gmail.com>
Date
Apr 12, 2008, 04:26 UTC
Message-ID
<46dff0320804112126l6ac3bcf4q8b7cc7b09e596479@mail.gmail.com>
In-Reply-To
<7v1w5cotz2.fsf@gitster.siamese.dyndns.org>
On Sat, Apr 12, 2008 at 7:24 AM, Junio C Hamano <junio@pobox.com> wrote:
Show 19 quoted lines
> Ping Yin <pkufranky@gmail.com> writes:
>
>  > Originally, the submodule workflow enforces 'git init' in the beginning
>  > which copies submodule config info from .gitmodules to $GIT_DIR/config.
>  > Then all subcommands except 'init' and 'add' fetch submodule info from
>  > $GIT_DIR/config and .gitmodules can be discarded.
>  >
>  > However, there may be inconsistence between .git/config and .gitmodules
>  > when always using 'git init' at first. If upstream .gitmodules changes,
>  > it is not easy to sync the changes to $GIT_DIR/config.
>
>
> Maybe you missed an earlier thread with Roman Shaposhnik where this issue
>  was discussed and a solution more in line with the original intent of the
>  design of the submodule system was mentioned (actually I should not take
>  credit for that suggestion as it was not mine but somebody else mentioned
>  it back when git-submodule command was initially being designed.  I only
>  recalled there was that one issue in the old discussion but there might
>  have been others)?

You mean use "hooks" to update $GIT_DIR/config with user interaction when .gitmodules changes? Or give user hints when "git submodule update" fails?

What you said in that thread is that the url in $GIT_DIR/config is different from the one in .gitmodules (with protocol change perhaps) originally, and then the url in .gitmodules changes. So when "git submodule update" fails, it notices this change and tell the user.

What i mean here is another case. The url in $GIT_DIR/config is the same as the one in .gitmodules, and then the url in .gitmodules change. So this change can be synced automatically to $GIT_DIR/config.

However, when both cases happen in the same time, there is no way to differentiate these two cases. So the command can't do something automatically and has to leave all choice to the user.

In an environment with central repositories, all submodule urls will be the same between $GIT_DIR/config and .gitmodules. It is a little annoying to give so many users this kind of uneccessary choice if the submodule url changes in .gitmodules.

-- 
Ping Yin
Previous: Junio C HamanoNext: Junio C Hamano
Message 14 of 20 in “submodule: fallback to .gitmodules and multiple level module definition”
  1. submodule: fallback to .gitmodules and multiple level module definitionPing Yin, Apr 10, 2008
  2. 1/7 git-submodule: Extract functions module_info and module_urlPing Yin, Apr 10, 2008
  3. 1/3 git-submodule summary: --for-status optionPing Yin, Apr 10, 2008
  4. 2/3 builtin-status: submodule summary supportPing Yin, Apr 10, 2008
  5. 2/7 git-submodule: Extract absolute_url & move absolute url logic to module_clonePing Yin, Apr 10, 2008
  6. 3/3 buitin-status: Add tests for submodule summaryPing Yin, Apr 10, 2008
  7. 3/7 git-submodule: Fall back on .gitmodules if info not found in $GIT_DIR/configPing Yin, Apr 10, 2008
  8. 4/7 git-submodule: Extract module_add from cmd_addPing Yin, Apr 10, 2008
  9. 5/7 git-submodule: multi-level module definitionPing Yin, Apr 10, 2008
  10. 6/7 git-submodule: Don't die when command fails for one submodulePing Yin, Apr 10, 2008
  11. 7/7 git-submodule: "update --force" to enforce cloning non-submodulePing Yin, Apr 10, 2008
  12. Junio C HamanoApr 11, 2008
  13. Junio C HamanoApr 11, 2008
  14. Ping YinApr 12, 2008
  15. Junio C HamanoApr 11, 2008
  16. Ping YinApr 12, 2008
  17. Ping YinApr 10, 2008
  18. Junio C HamanoApr 11, 2008
  19. Ping YinApr 12, 2008
  20. Junio C HamanoApr 12, 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.