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>maint
							parent
							
								
									e923eaeb90
								
							
						
					
					
						commit
						3deea89c5f
					
				|  | @ -553,12 +553,15 @@ cmd_summary() { | ||||||
|  |  | ||||||
| 	test $summary_limit = 0 && return | 	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 | 	then | ||||||
| 		head=$rev | 		head=$rev | ||||||
| 		shift | 		shift | ||||||
|  | 	elif test -z "$1" -o "$1" = "HEAD" | ||||||
|  | 	then | ||||||
|  | 		return | ||||||
| 	else | 	else | ||||||
| 		head=HEAD | 		head="HEAD" | ||||||
| 	fi | 	fi | ||||||
|  |  | ||||||
| 	if [ -n "$files" ] | 	if [ -n "$files" ] | ||||||
|  |  | ||||||
|  | @ -227,4 +227,11 @@ test_expect_success 'fail when using --files together with --cached' " | ||||||
|     test_must_fail git submodule summary --files --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 | test_done | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue