diff options
author | Johan Herland <johan@herland.net> | 2010-02-16 11:21:14 +0100 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2010-02-17 11:14:04 -0800 |
commit | 3deea89c5feb0dfdfb99ea752f83497d97a3bdd5 (patch) | |
tree | d44dac620a12cedcc1e8c73724b166ff35423a78 | |
parent | e923eaeb901ff056421b9007adcbbce271caa7b6 (diff) | |
download | git-3deea89c5feb0dfdfb99ea752f83497d97a3bdd5.tar.gz git-3deea89c5feb0dfdfb99ea752f83497d97a3bdd5.tar.xz |
submodule summary: Don't barf when invoked in an empty repo
When invoking "git submodule summary" in an empty repo (which can be
indirectly done by setting status.submodulesummary = true), it currently
emits an error message (via "git diff-index") since HEAD points to an
unborn branch.
This patch adds handling of the HEAD-points-to-unborn-branch special case,
so that "git submodule summary" no longer emits this error message.
The patch also adds a test case that verifies the fix.
Suggested-by: Jeff King <peff@peff.net>
Signed-off-by: Johan Herland <johan@herland.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rwxr-xr-x | git-submodule.sh | 7 | ||||
-rwxr-xr-x | t/t7401-submodule-summary.sh | 7 |
2 files changed, 12 insertions, 2 deletions
diff --git a/git-submodule.sh b/git-submodule.sh index 664f21721..5869c00f2 100755 --- a/git-submodule.sh +++ b/git-submodule.sh @@ -553,12 +553,15 @@ cmd_summary() { 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 + elif test -z "$1" -o "$1" = "HEAD" + then + return else - head=HEAD + head="HEAD" fi if [ -n "$files" ] diff --git a/t/t7401-submodule-summary.sh b/t/t7401-submodule-summary.sh index d3c039f72..cee319da0 100755 --- a/t/t7401-submodule-summary.sh +++ b/t/t7401-submodule-summary.sh @@ -227,4 +227,11 @@ test_expect_success 'fail when using --files together with --cached' " test_must_fail git submodule summary --files --cached " +test_expect_success 'should not fail in an empty repo' " + git init xyzzy && + cd xyzzy && + git submodule summary >output 2>&1 && + test_cmp output /dev/null +" + test_done |