diff --git a/git-submodule.sh b/git-submodule.sh
index e2082fd1492fe34e69c59f0a46cbaf7ddd2e2a8e..8175cb279d38a663fc0481e2b11f4b5ea60f8a32 100755 (executable)
--- a/git-submodule.sh
+++ b/git-submodule.sh
branch=
reference=
cached=
+recursive=
+init=
files=
nofetch=
update=
test $summary_limit = 0 && return
- if rev=$(git rev-parse -q --verify "$1^0")
+ if rev=$(git rev-parse -q --verify --default HEAD ${1+"$1"})
then
head=$rev
- shift
+ test $# = 0 || shift
+ elif test -z "$1" -o "$1" = "HEAD"
+ then
+ # before the first commit: compare with an empty tree
+ head=$(git hash-object -w -t tree --stdin </dev/null)
+ test -z "$1" || shift
else
- head=HEAD
+ head="HEAD"
fi
if [ -n "$files" ]
range=$sha1_dst
fi
GIT_DIR="$name/.git" \
- git log --pretty=oneline --first-parent $range | wc -l
+ git rev-list --first-parent $range -- | wc -l
)
total_commits=" ($(($total_commits + 0)))"
;;