path: root/t/
diff options
authorSZEDER Gábor <>2015-08-24 16:15:18 (GMT)
committerJunio C Hamano <>2015-08-25 16:35:13 (GMT)
commit2bd07065c3ed8a1bd2dc6f5d8e914dfec31e3dca (patch)
treeb6a65172ecba1df898183b9aa6d8fefff918eb61 /t/
parent282616c72d1d08a77ca4fe1186cb708c38408d87 (diff)
describe --contains: default to HEAD when no commit-ish is given
'git describe --contains' doesn't default to HEAD when no commit is given, and it doesn't produce any output, not even an error: ~/src/git ((v2.5.0))$ ./git describe --contains ~/src/git ((v2.5.0))$ ./git describe --contains HEAD v2.5.0^0 Unlike other 'git describe' options, the '--contains' code path is implemented by calling 'name-rev' with a bunch of options plus all the commit-ishes that were passed to 'git describe'. If no commit-ish was present, then 'name-rev' got invoked with none, which then leads to the behavior illustrated above. Porcelain commands usually default to HEAD when no commit-ish is given, and 'git describe' already does so in all other cases, so it should do so with '--contains' as well. Pass HEAD to 'name-rev' when no commit-ish is given on the command line to make '--contains' behave consistently with other 'git describe' options. While at it, use argv_array_pushv() instead of the loop to pass commit-ishes to 'git name-rev'. 'git describe's short help already indicates that the commit-ish is optional, but the synopsis in the man page doesn't, so update it accordingly as well. Signed-off-by: SZEDER Gábor <> Signed-off-by: Junio C Hamano <>
Diffstat (limited to 't/')
1 files changed, 8 insertions, 0 deletions
diff --git a/t/ b/t/
index c0e5b2a..85f2694 100755
--- a/t/
+++ b/t/
@@ -113,6 +113,14 @@ check_describe A-3-* --long HEAD^^2
check_describe c-7-* --tags
check_describe e-3-* --first-parent --tags
+test_expect_success 'describe --contains defaults to HEAD without commit-ish' '
+ echo "A^0" >expect &&
+ git checkout A &&
+ test_when_finished "git checkout -" &&
+ git describe --contains >actual &&
+ test_cmp expect actual
: >err.expect
check_describe A --all A^0
test_expect_success 'no warning was displayed for A' '