git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: Latest master failing t7401 submodule tests

From
Junio C Hamano <gitster@pobox.com>
Date
Mar 3, 2010, 20:52 UTC
Message-ID
<7vbpf5m8kh.fsf@alter.siamese.dyndns.org>
In-Reply-To
<7vhboxno38.fsf@alter.siamese.dyndns.org>
Junio C Hamano <gitster@pobox.com> writes:
Show 14 quoted lines
> Jeff King <peff@peff.net> writes:
>
>> I did see it on my debian unstable box with with dash as /bin/sh (though
>
> 3deea89 (submodule summary: Don't barf when invoked in an empty repo,
> 2010-02-16) looks broken.  It shifts $1 unconditionally when:
>
>  - "git submodule summary", no arguments given and defaults to HEAD which
>    is _not_ unborn (we shouldn't shift in this case);
>
>  - "git submodule summary HEAD path...", which is not unborn (we should shift);
>
>  - "git submodule summary path...", defaults to HEAD which is _not_ unborn
>    (we shouldn't shift).
IOW, shouldn't the code look more like this?
	if test $# != 0 && head=$(git rev-parse -q --verify "$1")
	then
		shift
	else
		git rev-parse -q --verify HEAD >/dev/null || return 0
		head=HEAD
	fi

That is, if a specific version might be there, we see if it is a version and shift it out only if that is the case. Otherwise we default to HEAD but special case for an unborn HEAD (and report success).

 git-submodule.sh |    9 +++------
 1 files changed, 3 insertions(+), 6 deletions(-)
diff --git a/git-submodule.sh b/git-submodule.sh
index 5869c00..bd3a8d4 100755
--- a/git-submodule.sh
+++ b/git-submodule.sh
@@ -553,15 +553,12 @@ cmd_summary() {
 
 	test $summary_limit = 0 && return
 
-	if rev=$(git rev-parse -q --verify --default HEAD ${1+"$1"})
+	if test $# != 0 && head=$(git rev-parse -q --verify "$1")
 	then
-		head=$rev
 		shift
-	elif test -z "$1" -o "$1" = "HEAD"
-	then
-		return
 	else
-		head="HEAD"
+		git rev-parse -q --verify HEAD >/dev/null || return 0
+		head=HEAD
 	fi
 
 	if [ -n "$files" ]
Previous: Jeff King
Message 17 of 17 in “Latest master failing t7401 submodule tests”
  1. A Large Angry SCMMar 3, 2010
  2. Junio C HamanoMar 3, 2010
  3. Jeff KingMar 3, 2010
  4. Junio C HamanoMar 3, 2010
  5. Jeff KingMar 3, 2010
  6. Junio C HamanoMar 3, 2010
  7. Junio C HamanoMar 3, 2010
  8. What should "git submodule summary" give before an initial commit?Junio C Hamano, Mar 3, 2010
  9. Johan HerlandMar 3, 2010
  10. Jens LehmannMar 4, 2010
  11. Sverre RabbelierMar 4, 2010
  12. Junio C HamanoMar 4, 2010
  13. Sverre RabbelierMar 4, 2010
  14. Junio C HamanoMar 4, 2010
  15. Sverre RabbelierMar 4, 2010
  16. Jeff KingMar 3, 2010
  17. Junio C HamanoMar 3, 2010

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.