Fix git-verify-tag for light-weight tags

It currently exits printing "git-cat-file SHA1: bad file", while
instead we must just abort the verification for light-weight
tags (e.g. referring to commit objects).

[jc: tag objects can tag anything not just commits, so I fixed
 up the original patch slightly.  you should be able to validate
 a signed tag that points at a blob object. ]

Signed-off-by: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
Paolo 'Blaisorblade' Giarrusso 2005-10-09 16:50:34 -07:00 committed by Junio C Hamano
parent 8c51242873
commit 5a6850e8aa

View File

@ -1,8 +1,12 @@
#!/bin/sh
. git-sh-setup || die "Not a git archive"
tag=$(git-rev-parse $1) || exit 1
type="$(git-cat-file -t "$1" 2>/dev/null)" ||
die "$1: no such object."
git-cat-file tag $tag > .tmp-vtag || exit 1
test "$type" = tag ||
die "$1: cannot verify a non-tag object of type $type."
git-cat-file tag "$1" > .tmp-vtag || exit 1
cat .tmp-vtag | sed '/-----BEGIN PGP/Q' | gpg --verify .tmp-vtag - || exit 1
rm -f .tmp-vtag