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

Re: [PATCH/RFC 1/7] git-submodule: Extract functions module_info and module_url

From
Ping Yin <pkufranky@gmail.com>
Date
Apr 12, 2008, 03:05 UTC
Message-ID
<46dff0320804112005t9b3cd27gc250dddffb218076@mail.gmail.com>
In-Reply-To
<7v4pa8qb2h.fsf@gitster.siamese.dyndns.org>
On Sat, Apr 12, 2008 at 6:30 AM, Junio C Hamano <junio@pobox.com> wrote:
Show 48 quoted lines
> Ping Yin <pkufranky@gmail.com> writes:
>
>  > @@ -232,12 +251,11 @@ cmd_init()
>  >               shift
>  >       done
>  >
>  > -     git ls-files --stage -- "$@" | grep '^160000 ' |
>  > -     while read mode sha1 stage path
>  > +     module_info "$@" |
>  > +     while read sha1 path name url
>  >       do
>  > +             test -n "$name" || exit
>  >               # Skip already registered paths
>  > -             name=$(module_name "$path") || exit
>  > -             url=$(git config submodule."$name".url)
>  >               test -z "$url" || continue
>
>  This is not a new bug in this round of patch (i.e. the original code
>  already did the same), but I have to wonder if exiting the loop silently
>  when $name is not set (i.e. .gitmodules does not have an entry to describe
>  the submodule yet) is a good idea.
>
>  If an entry with mode 160000 in the index is an error if it does not have
>  a corresponding entry in .gitmodules, then this code should say so when
>  exiting the loop prematurely.  If it is not, I think it should silently
>  continue just like missing URL case.
>
>  The user may be right in the process of manually adding a new submodule,
>  has done "git add" of the submodule path already but hasn't yet decided
>  what the name of the submodule or where the final published URL would be.
>  In such a case, you would have 160000 entry in the index that does not
>  have a corresponding entry in .gitmodules and that is perfectly valid.
>
>  So I tend to think that you should treat "missing name" and "missing url"
>  as an non-error case.
>
>  cmd_init would obviously need to _notice_ "missing url" and refrain from
>  adding the missing remote URL to the config, but I do not think it should
>  error out.  Warning might be appropriate in cases, but I dunno.
>
>  Same comment applies to cmd_update() and cmd_status().  I would strongly
>  suspect that status may want to ignore missing name/url and show the usual
>  diff, as it does not even have to require the submodule to interact with
>  any remote repository at all.  The user may be privately using the
>  submodule and does not even need to push it out nor pull it from
>  elsewhere, and in such a case, .gitmodules may not even be populated with
>  an entry for that submodule, ever, not just as a "right in the middle of
>  adding" status.

This patch just does refactor, i do this in my sixth patch "Don't die when command fails for one submodule"

-- 
Ping Yin
Previous: Junio C HamanoNext: Junio C Hamano
Message 19 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.