git submodule summary: add --files option

git submodule summary is providing similar functionality for submodules as
git diff-index does for a git project (including the meaning of --cached).
But the analogon to git diff-files is missing, so add a --files option to
summarize the differences between the index of the super project and the
last commit checked out in the working tree of the submodule.

Signed-off-by: Jens Lehmann <Jens.Lehmann@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Jens Lehmann
2009-08-13 21:32:50 +02:00
committed by Junio C Hamano
parent 6ffd781226
commit 1c244f6ee5
3 changed files with 49 additions and 5 deletions

View File

@ -4,7 +4,7 @@
#
# Copyright (c) 2007 Lars Hjemli
USAGE="[--quiet] [--cached] \
USAGE="[--quiet] [--cached|--files] \
[add [-b branch] <repo> <path>]|[status|init|update [-i|--init] [-N|--no-fetch] [--rebase|--merge]|summary [-n|--summary-limit <n>] [<commit>]] \
[--] [<path>...]|[foreach <command>]|[sync [--] [<path>...]]"
OPTIONS_SPEC=
@ -16,6 +16,7 @@ command=
branch=
reference=
cached=
files=
nofetch=
update=
@ -460,6 +461,7 @@ set_name_rev () {
cmd_summary() {
summary_limit=-1
for_status=
diff_cmd=diff-index
# parse $args after "submodule ... summary".
while test $# -ne 0
@ -468,6 +470,9 @@ cmd_summary() {
--cached)
cached="$1"
;;
--files)
files="$1"
;;
--for-status)
for_status="$1"
;;
@ -504,9 +509,17 @@ cmd_summary() {
head=HEAD
fi
if [ -n "$files" ]
then
test -n "$cached" &&
die "--cached cannot be used with --files"
diff_cmd=diff-files
head=
fi
cd_to_toplevel
# Get modified modules cared by user
modules=$(git diff-index $cached --raw $head -- "$@" |
modules=$(git $diff_cmd $cached --raw $head -- "$@" |
egrep '^:([0-7]* )?160000' |
while read mod_src mod_dst sha1_src sha1_dst status name
do
@ -520,7 +533,7 @@ cmd_summary() {
test -z "$modules" && return
git diff-index $cached --raw $head -- $modules |
git $diff_cmd $cached --raw $head -- $modules |
egrep '^:([0-7]* )?160000' |
cut -c2- |
while read mod_src mod_dst sha1_src sha1_dst status name