diff options
author | SZEDER Gábor <szeder@ira.uka.de> | 2015-08-24 18:15:18 +0200 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2015-08-25 09:35:13 -0700 |
commit | 2bd07065c3ed8a1bd2dc6f5d8e914dfec31e3dca (patch) | |
tree | b6a65172ecba1df898183b9aa6d8fefff918eb61 /builtin | |
parent | Merge branch 'maint-1.9' into maint-2.0 (diff) | |
download | tgif-2bd07065c3ed8a1bd2dc6f5d8e914dfec31e3dca.tar.xz |
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>
Diffstat (limited to 'builtin')
-rw-r--r-- | builtin/describe.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/builtin/describe.c b/builtin/describe.c index 24d740c8b1..d06673a378 100644 --- a/builtin/describe.c +++ b/builtin/describe.c @@ -451,10 +451,10 @@ int cmd_describe(int argc, const char **argv, const char *prefix) if (pattern) argv_array_pushf(&args, "--refs=refs/tags/%s", pattern); } - while (*argv) { - argv_array_push(&args, *argv); - argv++; - } + if (argc) + argv_array_pushv(&args, argv); + else + argv_array_push(&args, "HEAD"); return cmd_name_rev(args.argc, args.argv, prefix); } |