summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLibravatar Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>2005-10-09 16:50:34 -0700
committerLibravatar Junio C Hamano <junkio@cox.net>2005-10-09 16:50:34 -0700
commit5a6850e8aae7c6ef4f22e07cb620eb9325543732 (patch)
tree22a152fdd75725437083b834db3eb588f42dc0a7
parentMake sure 'make install' does not have to rebuild templates. (diff)
downloadtgif-5a6850e8aae7c6ef4f22e07cb620eb9325543732.tar.xz
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>
-rwxr-xr-xgit-verify-tag.sh8
1 files changed, 6 insertions, 2 deletions
diff --git a/git-verify-tag.sh b/git-verify-tag.sh
index 156c75bb3e..ed4c893968 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