From: Matthijs Melchior Date: Sat, 02 Jun 2007 08:37:45 GMT Subject: [PATCH] Add option -L to git-tag. Message-ID: <1180773465209-git-send-email-mmelchior@xs4all.nl> This will list the selected tags and include annotations, if any. Signed-off-by: Matthijs Melchior --- This patch has been created to allow me to easily see the annotations with tags. I have not found any other way to do this... Some remarks on the new bit of code: - Sorting the tag names resulting from git-rev-parse is not nessecary since the list of tags is already deliverd in sorted order. - Using git-cat-file -t on every tag is expensive, but there is no alternative -Matthijs Documentation/git-tag.txt | 5 ++++- git-tag.sh | 24 +++++++++++++++++------- 2 files changed, 21 insertions(+), 8 deletions(-) diff --git a/Documentation/git-tag.txt b/Documentation/git-tag.txt index 4e3e027..441f361 100644 --- a/Documentation/git-tag.txt +++ b/Documentation/git-tag.txt @@ -11,7 +11,7 @@ SYNOPSIS [verse] 'git-tag' [-a | -s | -u ] [-f] [-m | -F ] [] 'git-tag' -d ... -'git-tag' -l [] +'git-tag' [-l | -L] [] 'git-tag' -v DESCRIPTION @@ -41,6 +41,9 @@ GnuPG key for signing. `-l ` lists tags that match the given pattern (or all if no pattern is given). +`-L ` lists tags, including their annotations, that match +the given pattern (or all if no pattern is given). + OPTIONS ------- -a:: diff --git a/git-tag.sh b/git-tag.sh index 6f0b7a7..45c4253 100755 --- a/git-tag.sh +++ b/git-tag.sh @@ -1,7 +1,7 @@ #!/bin/sh # Copyright (c) 2005 Linus Torvalds -USAGE='-l [] | [-a | -s | -u ] [-f | -d | -v] [-m ] []' +USAGE='[-l | -L] [] | [-a | -s | -u ] [-f | -d | -v] [-m ] []' SUBDIRECTORY_OK='Yes' . git-sh-setup @@ -26,13 +26,23 @@ do -f) force=1 ;; - -l) - case "$#" in - 1) - set x . ;; - esac + -l|-L) + TAGSONLY=true + [ "$1" = -L ] && TAGSONLY=false + [ "$#" = 1 ] && set x . shift - git rev-parse --symbolic --tags | sort | grep "$@" + git rev-parse --symbolic --tags | grep "$@" | + while read TAG + do + echo "$TAG" + $TAGSONLY && continue + OBJTYPE=$(git cat-file -t "$TAG") + case $OBJTYPE in + tag) git cat-file $OBJTYPE "$TAG" | + sed '1,/^$/d;/^-----BEGIN PGP SIGNATURE-----$/Q;s/^/ /' + ;; + esac + done exit $? ;; -m) -- 1.5.2