git-submodule summary: --for-status option

The --for-status option is mainly used by builtin-status/commit.
It adds 'Modified submodules:' line at top and  '# ' prefix to all
following lines.

Signed-off-by: Ping Yin <pkufranky@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Ping Yin 2008-04-12 23:05:31 +08:00 committed by Junio C Hamano
parent f43e2fd43b
commit d0f64dd44d
2 changed files with 27 additions and 2 deletions

View File

@ -342,6 +342,7 @@ set_name_rev () {
#
cmd_summary() {
summary_limit=-1
for_status=
# parse $args after "submodule ... summary".
while test $# -ne 0
@ -350,6 +351,9 @@ cmd_summary() {
--cached)
cached="$1"
;;
--for-status)
for_status="$1"
;;
-n|--summary-limit)
if summary_limit=$(($2 + 0)) 2>/dev/null && test "$summary_limit" = "$2"
then
@ -397,7 +401,8 @@ cmd_summary() {
done
)
test -n "$modules" &&
test -z "$modules" && return
git diff-index $cached --raw $head -- $modules |
grep -e '^:160000' -e '^:[0-7]* 160000' |
cut -c2- |
@ -499,7 +504,14 @@ cmd_summary() {
echo
fi
echo
done
done |
if test -n "$for_status"; then
echo "# Modified submodules:"
echo "#"
sed -e 's|^|# |' -e 's|^# $|#|'
else
cat
fi
}
#
# List all submodules, prefixed with:

View File

@ -192,4 +192,17 @@ test_expect_success 'given commit' "
EOF
"
test_expect_success '--for-status' "
git submodule summary --for-status HEAD^ >actual &&
test_cmp actual - <<EOF
# Modified submodules:
#
# * sm1 $head6...0000000:
#
# * sm2 0000000...$head7 (2):
# > Add foo9
#
EOF
"
test_done