Browse Source

describe: prepend "tags/" when describing tags with embedded name

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 212945d4a8 ("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>
maint
Daniel Knittl-Frank 7 years ago committed by Junio C Hamano
parent
commit
1bba00130a
  1. 7
      builtin/describe.c
  2. 6
      t/t6120-describe.sh

7
builtin/describe.c

@ -271,10 +271,13 @@ static void display_name(struct commit_name *n) @@ -271,10 +271,13 @@ static void display_name(struct commit_name *n)
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)

6
t/t6120-describe.sh

@ -122,7 +122,7 @@ test_expect_success 'describe --contains defaults to HEAD without commit-ish' ' @@ -122,7 +122,7 @@ test_expect_success 'describe --contains defaults to HEAD without commit-ish' '
'

: >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
'
@ -340,4 +340,8 @@ test_expect_success ULIMIT_STACK_SIZE 'describe works in a deep repo' ' @@ -340,4 +340,8 @@ test_expect_success ULIMIT_STACK_SIZE 'describe works in a deep repo' '
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

Loading…
Cancel
Save