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

Re: [PATCH v2 2/3] git-submodule: New subcommand 'summary' (2) - hard work

From
Junio C Hamano <gitster@pobox.com>
Date
Mar 1, 2008, 07:29 UTC
Message-ID
<7vabli7vhr.fsf@gitster.siamese.dyndns.org>
In-Reply-To
<d6e82710452985611fb75c9d32a1b772bf0cb529.1204306070.git.pkufranky@gmail.com>
Ping Yin <pkufranky@gmail.com> writes:
Show 21 quoted lines
> This patch does the hard work of submodule summary and finally gives
> output shown in last patch.
>
> Signed-off-by: Ping Yin <pkufranky@gmail.com>
> ---
>  git-submodule.sh |   70 +++++++++++++++++++++++++++++++++++++++++++++++++++++-
>  1 files changed, 69 insertions(+), 1 deletions(-)
>
> diff --git a/git-submodule.sh b/git-submodule.sh
> index 8009a8d..8322771 100755
> --- a/git-submodule.sh
> +++ b/git-submodule.sh
> @@ -380,7 +380,75 @@ cmd_summary()
>  	# TODO: quote module names containing space or tab
>  	test -n "$modules" &&
>  	echo "# Submodules modified: "$modules &&
> -	echo "#"
> +	echo "#" &&
> +	git diff $cache_option --raw $head -- $modules |
> +	grep '^:160000\|:[0-9]\+ 160000' |
> +	cut -c2- |

Same issues as before. It might be worthwhile to write this part all in Perl, I suspect...

> +	while read mod_src mod_dst sha1_src sha1_dst status name
> +	do
> +		sha1_src=$(echo $sha1_src | sed -e 's/\.\.\.//')
> +		sha1_dst=$(echo $sha1_dst | sed -e 's/\.\.\.//')
This is unneeded if you used the right tool, i.e. diff-index.
> +		check_src=$(echo $mod_src | grep 160000)
> +		check_dst=$(echo $mod_dst | grep 160000)
Huh?  Do you mean "test $mod_src = ':160000'" and such?
> +		errmsg=
> +		unfound_src=
> +		unfound_dst=
Perhaps "missing" is a better word.
> +		test -z "$check_src" ||
> +		GIT_DIR="$name/.git" git-rev-parse --verify $sha1_src^0 >/dev/null 2>&1 ||
> +		unfound_src=t

You do not want to do ^0; you will not be bind a non-commit in gitlink entry anyway.

Previous: Junio C HamanoNext: Ping Yin
Message 8 of 20 in “git-submodule: New subcommand 'summary'”
  1. 0/3 git-submodule: New subcommand 'summary'Ping Yin, Feb 29, 2008
  2. 1/3 git-submodule: New subcommand 'summary' (1) - code frameworkPing Yin, Feb 29, 2008
  3. 2/3 git-submodule: New subcommand 'summary' (2) - hard workPing Yin, Feb 29, 2008
  4. 3/3 git-submodule: New subcommand 'summary' (3) - limit summary sizePing Yin, Feb 29, 2008
  5. Junio C HamanoMar 1, 2008
  6. Ping YinMar 1, 2008
  7. Junio C HamanoMar 1, 2008
  8. Junio C HamanoMar 1, 2008
  9. Ping YinMar 1, 2008
  10. Ping YinMar 7, 2008
  11. Jakub NarebskiMar 7, 2008
  12. Ping YinMar 7, 2008
  13. Junio C HamanoMar 7, 2008
  14. Junio C HamanoMar 1, 2008
  15. Ping YinMar 1, 2008
  16. Junio C HamanoMar 1, 2008
  17. Junio C HamanoMar 2, 2008
  18. Ping YinMar 2, 2008
  19. Ping YinMar 1, 2008
  20. Ping YinMar 1, 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.