Merge branch 'sg/describe-contains'

"git describe" without argument defaulted to describe the HEAD
commit, but "git describe --contains" didn't.  Arguably, in a
repository used for active development, such defaulting would not
be very useful as the tip of branch is typically not tagged, but it
is better to be consistent.

* sg/describe-contains:
  describe --contains: default to HEAD when no commit-ish is given
This commit is contained in:
Junio C Hamano 2015-08-31 15:39:10 -07:00
commit e95c3fb54f
3 changed files with 14 additions and 6 deletions

View File

@ -9,7 +9,7 @@ git-describe - Describe a commit using the most recent tag reachable from it
SYNOPSIS
--------
[verse]
'git describe' [--all] [--tags] [--contains] [--abbrev=<n>] <commit-ish>...
'git describe' [--all] [--tags] [--contains] [--abbrev=<n>] [<commit-ish>...]
'git describe' [--all] [--tags] [--contains] [--abbrev=<n>] --dirty[=<mark>]
DESCRIPTION
@ -27,7 +27,7 @@ see the -a and -s options to linkgit:git-tag[1].
OPTIONS
-------
<commit-ish>...::
Commit-ish object names to describe.
Commit-ish object names to describe. Defaults to HEAD if omitted.
--dirty[=<mark>]::
Describe the working tree.

View File

@ -443,10 +443,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);
}

View File

@ -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' '