The man page of the "git describe" command explains the expected
output when using the --all option, i.e. the full reference path is
shown, including heads/ or tags/ prefix.
When
212945d4a85dfa172ea55ec73b1d830ef2d8582f ("Teach git-describe
to verify annotated tag names before output") made Git favor the
embedded name of annotated tags, it accidentally changed the output
format when the --all flag is given, only printing the tag's name
without the prefix.
Check if --all was specified and re-add the "tags/" prefix for this
special case to fix the regresssion.
Signed-off-by: Daniel Knittl-Frank <knittl89+git@googlemail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
n->name_checked = 1;
}
- if (n->tag)
+ if (n->tag) {
+ if (all)
+ printf("tags/");
printf("%s", n->tag->tag);
- else
+ } else {
printf("%s", n->path);
+ }
}
static void show_suffix(int depth, const struct object_id *oid)
'
: >err.expect
-check_describe A --all A^0
+check_describe tags/A --all A^0
test_expect_success 'no warning was displayed for A' '
test_cmp err.expect err.actual
'
test_cmp expect actual
'
+check_describe tags/A --all A
+check_describe tags/c --all c
+check_describe heads/branch_A --all --match='branch_*' branch_A
+
test_done