t5516: test pushing a tag of an otherwise unreferenced blob
authorJeff King <peff@peff.net>
Fri, 17 Oct 2014 00:03:41 +0000 (20:03 -0400)
committerJunio C Hamano <gitster@pobox.com>
Sun, 19 Oct 2014 22:07:06 +0000 (15:07 -0700)
It's not unreasonable to have a tag that points to a blob
that is not part of the normal history. We do this in
git.git to distribute gpg keys. However, we never explicitly
checked in our test suite that this actually works (i.e.,
that pack-objects actually sends the blob because of the tag
mentioning it).

It does in fact work fine, but a recent patch under
discussion broke this, and the test suite didn't notice.
Let's make the test suite more complete.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/t5516-fetch-push.sh
index 67e0ab346204b437c8e3585d948c2c61858e1928..7c8a769a90e4554500d73506c1df41483d846d98 100755 (executable)
@@ -1277,4 +1277,17 @@ EOF
        git push --no-thin --receive-pack="$rcvpck" no-thin/.git refs/heads/master:refs/heads/foo
 '
 
+test_expect_success 'pushing a tag pushes the tagged object' '
+       rm -rf dst.git &&
+       blob=$(echo unreferenced | git hash-object -w --stdin) &&
+       git tag -m foo tag-of-blob $blob &&
+       git init --bare dst.git &&
+       git push dst.git tag-of-blob &&
+       # the receiving index-pack should have noticed
+       # any problems, but we double check
+       echo unreferenced >expect &&
+       git --git-dir=dst.git cat-file blob tag-of-blob >actual &&
+       test_cmp expect actual
+'
+
 test_done