aboutsummaryrefslogtreecommitdiff
path: root/t/t6120-describe.sh
diff options
context:
space:
mode:
authorShawn O. Pearce <spearce@spearce.org>2008-03-03 20:09:38 -0500
committerJunio C Hamano <gitster@pobox.com>2008-03-03 18:26:40 -0800
commit3291fe4072ee3ac52fb927a0b504d4440d3bbe5a (patch)
treea893349bf8da38e19df17cfb8b5a4f10480f2dba /t/t6120-describe.sh
parentd1b28f512c6d2c7d373c746d8876dbf177ddf114 (diff)
downloadgit-3291fe4072ee3ac52fb927a0b504d4440d3bbe5a.tar.gz
git-3291fe4072ee3ac52fb927a0b504d4440d3bbe5a.tar.xz
Add git-describe test for "verify annotated tag names on output"
Back in 212945d4 ("Teach git-describe to verify annotated tag names before output") I taught git-describe to output the name shown in the "tag" header of an annotated tag, rather than the name it is actually stored under in this repository's ref namespace. This test case verifies this is working correctly by renaming the ref for an annotated tag to a different name that what is recorded in the tag body, and verifying that tag is returned. We also verify there is a message shown on stderr to inform the user that the tag is possibly stored under the wrong name locally. Signed-off-by: Shawn O. Pearce <spearce@spearce.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 't/t6120-describe.sh')
-rwxr-xr-xt/t6120-describe.sh17
1 files changed, 16 insertions, 1 deletions
diff --git a/t/t6120-describe.sh b/t/t6120-describe.sh
index cc2447766..22425d526 100755
--- a/t/t6120-describe.sh
+++ b/t/t6120-describe.sh
@@ -15,8 +15,9 @@ test_description='test describe
check_describe () {
expect="$1"
shift
- R=$(git describe "$@")
+ R=$(git describe "$@" 2>err.actual)
S=$?
+ cat err.actual >&3
test_expect_success "describe $*" '
test $S = 0 &&
case "$R" in
@@ -98,6 +99,20 @@ check_describe B --tags HEAD^^2^
check_describe B-0-* --long HEAD^^2^
+test_expect_success 'rename tag A to Q locally' '
+ mv .git/refs/tags/A .git/refs/tags/Q
+'
+cat - >err.expect <<EOF
+warning: tag 'A' is really 'Q' here
+EOF
+check_describe A-* HEAD
+test_expect_success 'warning was displayed for Q' '
+ git diff err.expect err.actual
+'
+test_expect_success 'rename tag Q back to A' '
+ mv .git/refs/tags/Q .git/refs/tags/A
+'
+
test_expect_success 'pack tag refs' 'git pack-refs'
check_describe A-* HEAD