Skip to content

Commit

Permalink
submodule summary: Don't barf when invoked in an empty repo
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Johan Herland authored and Junio C Hamano committed Feb 17, 2010
1 parent e923eae commit 3deea89
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 2 deletions.
7 changes: 5 additions & 2 deletions git-submodule.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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" ]
Expand Down
7 changes: 7 additions & 0 deletions t/t7401-submodule-summary.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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

0 comments on commit 3deea89

Please sign in to comment.