Browse Source

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>
maint
Ping Yin 17 years ago committed by Junio C Hamano
parent
commit
d0f64dd44d
  1. 16
      git-submodule.sh
  2. 13
      t/t7401-submodule-summary.sh

16
git-submodule.sh

@ -342,6 +342,7 @@ set_name_rev () { @@ -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() { @@ -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() { @@ -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() { @@ -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:

13
t/t7401-submodule-summary.sh

@ -192,4 +192,17 @@ test_expect_success 'given commit' " @@ -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

Loading…
Cancel
Save