# [PATCH 2/2] submodule summary: do not fail before the first commit

4 messages from 2010-03-03 to 2010-03-03. Participants: Junio C Hamano, Johan Herland.
Thread: https://gitlist.dev/t/22898

## Junio C Hamano, 2010-03-03 22:19

Subject: [PATCH 1/2] submodule summary: do not shift a non-existent positional variable
Message-ID: <1267654750-30911-1-git-send-email-gitster@pobox.com>
URL: https://gitlist.dev/e/1267654750-30911-1-git-send-email-gitster%40pobox.com

```
From: Jeff King <peff@peff.net>

When "git submodule summary" is run without any argument, we default to
compare the state of index with the HEAD, but tried to shift out $1 that
does not exist (and worse yet, we didn't use it).

Signed-off-by: Junio C Hamano <gitster@pobox.com>
---
 git-submodule.sh |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/git-submodule.sh b/git-submodule.sh
index 5869c00..383dc45 100755
--- a/git-submodule.sh
+++ b/git-submodule.sh
@@ -556,7 +556,7 @@ cmd_summary() {
 	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
 		return
-- 
1.7.0.1.290.g2d87e

```

## Junio C Hamano, 2010-03-03 22:19

Subject: [PATCH 2/2] submodule summary: do not fail before the first commit
Message-ID: <1267654750-30911-2-git-send-email-gitster@pobox.com>
URL: https://gitlist.dev/e/1267654750-30911-2-git-send-email-gitster%40pobox.com
In-Reply-To: <1267654750-30911-1-git-send-email-gitster@pobox.com>

```
When "git status" collects changes for the index (usually relative to
HEAD), it compares the index with an empty tree when the repository does
not have an initial commit yet.  "git submodule summary" is about asking
what submodule changes would be recorded if a commit is made right now,
and should do the same comparison to report all the added submodules,
instead of punting and being silent.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
---
 git-submodule.sh |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/git-submodule.sh b/git-submodule.sh
index 383dc45..eab2549 100755
--- a/git-submodule.sh
+++ b/git-submodule.sh
@@ -559,7 +559,8 @@ cmd_summary() {
 		test $# = 0 || shift
 	elif test -z "$1" -o "$1" = "HEAD"
 	then
-		return
+		# before the first commit: compare with an empty tree
+		head=$(git hash-object -w -t tree --stdin </dev/null)
 	else
 		head="HEAD"
 	fi
-- 
1.7.0.1.290.g2d87e

```

## Johan Herland, 2010-03-03 23:12

Subject: Re: [PATCH 1/2] submodule summary: do not shift a non-existent positional variable
Message-ID: <201003040012.37412.johan@herland.net>
URL: https://gitlist.dev/e/201003040012.37412.johan%40herland.net
In-Reply-To: <1267654750-30911-1-git-send-email-gitster@pobox.com>

```
On Wednesday 03 March 2010, Junio C Hamano wrote:
> From: Jeff King <peff@peff.net>
> 
> When "git submodule summary" is run without any argument, we default to
> compare the state of index with the HEAD, but tried to shift out $1 that
> does not exist (and worse yet, we didn't use it).
> 
> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Acked-by: Johan Herland <johan@herland.net>


...Johan

-- 
Johan Herland, <johan@herland.net>
www.herland.net

```

## Johan Herland, 2010-03-03 23:12

Subject: Re: [PATCH 2/2] submodule summary: do not fail before the first commit
Message-ID: <201003040012.52565.johan@herland.net>
URL: https://gitlist.dev/e/201003040012.52565.johan%40herland.net
In-Reply-To: <1267654750-30911-2-git-send-email-gitster@pobox.com>

```
On Wednesday 03 March 2010, Junio C Hamano wrote:
> When "git status" collects changes for the index (usually relative to
> HEAD), it compares the index with an empty tree when the repository does
> not have an initial commit yet.  "git submodule summary" is about asking
> what submodule changes would be recorded if a commit is made right now,
> and should do the same comparison to report all the added submodules,
> instead of punting and being silent.
> 
> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Acked-by: Johan Herland <johan@herland.net>


...Johan

-- 
Johan Herland, <johan@herland.net>
www.herland.net

```
