Thread (16 messages) flat view 16 messages, 3 authors, 2016-06-15

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

From: Junio C Hamano <hidden>
Date: 2016-06-15 22:44:19

Ping Yin [off-list ref] writes:
quoted hunk ↗ jump to hunk
This patch does the hard work of submodule summary and finally gives
output shown in last patch.

Signed-off-by: Ping Yin <redacted>
---
 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.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help