From: Paolo 'Blaisorblade' Giarrusso Date: Sun, 9 Oct 2005 23:50:34 +0000 (-0700) Subject: Fix git-verify-tag for light-weight tags X-Git-Tag: v0.99.8c~1^2~2 X-Git-Url: https://git.verplant.org/?a=commitdiff_plain;h=5a6850e8aae7c6ef4f22e07cb620eb9325543732;p=git.git 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 Signed-off-by: Junio C Hamano --- diff --git a/git-verify-tag.sh b/git-verify-tag.sh index 156c75bb..ed4c8939 100755 --- a/git-verify-tag.sh +++ b/git-verify-tag.sh @@ -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