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

Re: [regression?] "git status -a" reports modified for empty submodule directory

From
Ping Yin <pkufranky@gmail.com>
Date
Apr 30, 2008, 15:56 UTC
Message-ID
<46dff0320804300856w941d948rbcc1cee06f1b41a9@mail.gmail.com>
In-Reply-To
<7vej8n3imp.fsf@gitster.siamese.dyndns.org>
On Wed, Apr 30, 2008 at 3:29 PM, Junio C Hamano <gitster@pobox.com> wrote:
Show 7 quoted lines
>
>
>  For example, it has long been known ever since submodules were introduced
>  that if you work inside a sparsely checked out supermodule you have to use
>  "commit -a" with care, because the command notices missing submodule, and
>  there is no way for it to differenciate between the case you _want to_
>  remove it and the case you did not care about it,

If i am not misunderstood, there is one way now (although broken now, it used this kind of behaviour before git-status became built-in): empty directory to denote that the submodule is not checked out and unaware, and deleted directory to denote that the submodule is deleted.

Actually, i don't like the empty directory trick, since it will leave so many empty directories in a repository with many submodules unchecked out.

Show 18 quoted lines
>
>  That quirk was something people could live with while submodule support
>  was merely a newly invented curiosity.  But I do not think a command at
>  high level (iow Porcelain) such as commit and status should be left
>  unaware of the Policy that equate missing submodule and unmodified one
>  forever.  We should actively enforce the policy, so that unless you
>  explicitly ask nicely, the command should consider a missing submodule
>  just as unmodified, e.g. "commit -a" should not remove unchecked out
>  submodules.
>
>  But then you would need a way to ask nicely.  How?  Perhaps using "git rm",
>  and low level "update-index --remove".  Do we even need "commit -A"?  I
>  doubt it --- you do not remove submodules every day.
>
>  We'd like to keep the lowest-level unaware of the Policy, which means that
>  "diff-files" and "diff-index" should report unchecked out submodules.
>  Otherwise script writers will be left with no way to differenciate missing
>  and removed submodules.
Good point.
>
>  Once we start doing this, I think "git diff" Porcelain should fall into
>  Policy-aware category.
>
Agree this pilicy.

If this change needs a long way. Should we fix the regression first? Anyway, 'git status' and 'git status -a' should behave the same for submodules unchecked out. I have tried but i failed. I just found this regression was introduced on the first day of built-in status

-- 
Ping Yin
Previous: Junio C HamanoNext: Ping Yin
Message 14 of 28 in “[regression?] "git status -a" reports modified for empty submodule directory”
  1. Ping YinApr 22, 2008
  2. Ping YinApr 22, 2008
  3. Johannes SixtApr 22, 2008
  4. Ping YinApr 22, 2008
  5. Johannes SixtApr 22, 2008
  6. Roman ShaposhnikApr 22, 2008
  7. Ping YinApr 29, 2008
  8. 0/2 Add tests for submodule with empty directoryPing Yin, Apr 29, 2008
  9. 1/2 t4027: test diff for submodule with empty directoryPing Yin, Apr 29, 2008
  10. 2/2 Add t7506 to test submodule related functions for git-statusPing Yin, Apr 29, 2008
  11. Junio C HamanoApr 29, 2008
  12. Johannes SixtApr 30, 2008
  13. Junio C HamanoApr 30, 2008
  14. Ping YinApr 30, 2008
  15. 0/4 Fix regression for unchecked out submodulesPing Yin, May 2, 2008
  16. 1/4 t4027: test diff for submodule with empty directoryPing Yin, May 2, 2008
  17. 2/4 Add t7506 to test submodule related functions for git-statusPing Yin, May 2, 2008
  18. 3/4 Fix diff regression for submodules not checked outPing Yin, May 2, 2008
  19. 4/4 Fix ie_match_stat for non-checked-out submodulePing Yin, May 2, 2008
  20. Junio C HamanoMay 2, 2008
  21. Ping YinMay 2, 2008
  22. Junio C HamanoMay 2, 2008
  23. Ping YinMay 2, 2008
  24. Ping YinMay 3, 2008
  25. Johannes SchindelinMay 3, 2008
  26. Junio C HamanoMay 3, 2008
  27. Junio C HamanoMay 4, 2008
  28. Ping YinMay 4, 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.