describe --contains: default to HEAD when no commit-ish is given
authorSZEDER Gábor <szeder@ira.uka.de>
Mon, 24 Aug 2015 16:15:18 +0000 (18:15 +0200)
committerJunio C Hamano <gitster@pobox.com>
Tue, 25 Aug 2015 16:35:13 +0000 (09:35 -0700)
commit2bd07065c3ed8a1bd2dc6f5d8e914dfec31e3dca
treeb6a65172ecba1df898183b9aa6d8fefff918eb61
parent282616c72d1d08a77ca4fe1186cb708c38408d87
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 <szeder@ira.uka.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Documentation/git-describe.txt
builtin/describe.c
t/t6120-describe.sh