threads / patch / 22898

patch, 2 partssubmodule summary: do not fail before the first commit

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

## tl;dr

4 messages between Mar 3, 2010 and Mar 3, 2010. Diffs are folded; open one to read it.

replies: 3people: 2as markdown or json

Junio C Hamano· Mar 3, 2010, 22:19 UTC · lore

[PATCH 1/2] submodule summary: do not shift a non-existent positional variable

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(-)
Show changes to git-submodule.sh +1 −1
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· Mar 3, 2010, 22:19 UTC · re: Junio C Hamano · lore

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(-)
Show changes to git-submodule.sh +2 −1
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· Mar 3, 2010, 23:12 UTC · re: Junio C Hamano · lore

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

On Wednesday 03 March 2010, Junio C Hamano wrote:
Show 8 quoted lines
> 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
Johan Herland· Mar 3, 2010, 23:12 UTC · re: Junio C Hamano · lore

Re: [PATCH 1/2] submodule summary: do not shift a non-existent positional variable

On Wednesday 03 March 2010, Junio C Hamano wrote:
Show 7 quoted lines
> 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

← back to recent threads