summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLibravatar Shawn O. Pearce <spearce@spearce.org>2008-12-26 14:02:01 -0800
committerLibravatar Junio C Hamano <gitster@pobox.com>2008-12-26 16:37:53 -0800
commit81dc223deba84341be9681d7a1a4a183e02e41d6 (patch)
treeb03ad00ce9253ccee3a2f6b58c495264a1321afb
parentdescribe: match pattern for lightweight tags too (diff)
downloadtgif-81dc223deba84341be9681d7a1a4a183e02e41d6.tar.xz
describe: Avoid unnecessary warning when using --all
In 212945d4 ("Teach git-describe to verify annotated tag names before output") git-describe learned how to output a warning if an annotated tag object was matched but its internal name doesn't match the local ref name. However, "git describe --all" causes the local ref name to be prefixed with "tags/", so we need to skip over this prefix before comparing the local ref name with the name recorded inside of the tag object. Patch-by: René Scharfe <rene.scharfe@lsrfire.ath.cx> Signed-off-by: Shawn O. Pearce <spearce@spearce.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r--builtin-describe.c2
-rwxr-xr-xt/t6120-describe.sh6
2 files changed, 7 insertions, 1 deletions
diff --git a/builtin-describe.c b/builtin-describe.c
index 3da99c1d06..22b989fd74 100644
--- a/builtin-describe.c
+++ b/builtin-describe.c
@@ -160,7 +160,7 @@ static void display_name(struct commit_name *n)
n->tag = lookup_tag(n->sha1);
if (!n->tag || parse_tag(n->tag) || !n->tag->tag)
die("annotated tag %s not available", n->path);
- if (strcmp(n->tag->tag, n->path))
+ if (strcmp(n->tag->tag, all ? n->path + 5 : n->path))
warning("tag '%s' is really '%s' here", n->tag->tag, n->path);
}
diff --git a/t/t6120-describe.sh b/t/t6120-describe.sh
index c6bfef5f47..113a085cb9 100755
--- a/t/t6120-describe.sh
+++ b/t/t6120-describe.sh
@@ -100,6 +100,12 @@ check_describe B --tags HEAD^^2^
check_describe B-0-* --long HEAD^^2^
check_describe A-3-* --long HEAD^^2
+: >err.expect
+check_describe A --all A^0
+test_expect_success 'no warning was displayed for A' '
+ test_cmp err.expect err.actual
+'
+
test_expect_success 'rename tag A to Q locally' '
mv .git/refs/tags/A .git/refs/tags/Q
'