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

Re: [PATCH] status&commit: Teach them to show commits of modified submodules.

From
Junio C Hamano <gitster@pobox.com>
Date
Nov 10, 2007, 21:14 UTC
Message-ID
<7vabpliz13.fsf@gitster.siamese.dyndns.org>
In-Reply-To
<1194722863-14741-1-git-send-email-pkufranky@gmail.com>
Ping Yin <pkufranky@gmail.com> writes:
Show 20 quoted lines
> 	# submodule modifiled: sm1 sm2
> 	#
> 	# * sm1 354cd45...3f751e5:
> 	#   <<<
> 	#   	one line message for C
> 	#   	one line message for B
> 	#   >>>
> 	#   	one line message for D
> 	#   	one line message for E
> 	#
> 	# * sm2 5c8bfb5...ac46d84:
> 	#   <<<
> 	#   	msg
> 	#
> 	# On branch master
> 	# Changes to be committed:
> 	#   (use "git reset HEAD <file>..." to unstage)
> 	#
> 	#	modified:   sm1
> 	#	modified:   sm2
I think this presentation order is horrible.
 * I think everbody preferes to have "On branch master" at the
   very beginning, to avoid committing to a wrong branch by
   mistake.
 * As I understand it, in the real life use, there will be quite
   many commits from the submodule updates when a new commit is
   bound to a submodule in the superproject, as _the_ point of
   having a submodule is to bind a more or less independent
   project that progresses at quite a different pace as a
   submodule to the superproject.  In other words, by design,
   the superproject can stay behind from the tip of subproject
   and rebind it to a different commit only when there are
   significant changes of the subproject that need to be there
   to allow the other parts of the superproject (either
   superproject itself or another submodule) to use the features
   and/or fixes the submodule updates provides.
   Which means it will not be uncommon have hundreds of "one
   line message" for the submodules at the very beginning of the
   commit log message buffer, and your prsentation order will
   make that part overwhelm the overview of what changed _in_
   the supermodule itself (the "Changes to be committed:"
   lines), which gives the birds-eye view.
   And I think it is more important to give the birds-eye view
   of the supermodule itself first, when you are helping to
   prepare a commit message for the supermodule.  The user would
   start the commit log for the superproject with "This updates
   the new frotz feature.  It uses the updated API from the
   submodules A and B so we now use updated versions of them."
   and then continue "Notable changes in submodule A are ...".
   And the new part you are adding would help the user to write
   the latter description.

I also find "<<< lines then >>> other lines" format very hard to read. Maybe formatting it like this would make it a bit more readable and more space efficient?

 	# * sm1 354cd45...3f751e5:
 	#   - one line message for C
 	#   - one line message for B
 	#   + one line message for D
 	#   + one line message for E
 	# * sm2 5c8bfb5...ac46d84:
 	#   - msg

Note that if you swap the order and move this at the tail (perhaps before "Untracked files:" section, if you do not have a decent .gitignore set up), you can also lose the "submodules modified: sm1 sm2" line and the blank line before it, which would make the output even shorter without losing any useful information.

Previous: Yin PingNext: Yin Ping
Message 5 of 16 in “status&commit: Teach them to show commits of modified submodules.”
  1. status&commit: Teach them to show commits of modified submodules.Ping Yin, Nov 10, 2007
  2. Sven VerdoolaegeNov 10, 2007
  3. Sven VerdoolaegeNov 10, 2007
  4. Yin PingNov 11, 2007
  5. Junio C HamanoNov 10, 2007
  6. Yin PingNov 11, 2007
  7. Junio C HamanoNov 11, 2007
  8. Ping YinNov 12, 2007
  9. Johannes SixtNov 12, 2007
  10. Johannes SchindelinNov 12, 2007
  11. Junio C HamanoNov 12, 2007
  12. Johan HerlandNov 12, 2007
  13. Johannes SixtNov 12, 2007
  14. Lars HjemliNov 11, 2007
  15. Yin PingNov 11, 2007
  16. Lars HjemliNov 11, 2007

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.