This will list the selected tags and include annotations, if any. Signed-off-by: Matthijs Melchior <mmelchior@xxxxxxxxx> --- Version 2 of the git-tag -L patch. It implements better style, a new --pretty=n option and an interresting exit code. -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 <key-id>] [-f] [-m <msg> | -F <file>] <name> [<head>] 'git-tag' -d <name>... -'git-tag' -l [<pattern>] +'git-tag' [-l | -L] [<pattern>] 'git-tag' -v <name> DESCRIPTION @@ -41,6 +41,9 @@ GnuPG key for signing. `-l <pattern>` lists tags that match the given pattern (or all if no pattern is given). +`-L <pattern>` 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 [<pattern>] | [-a | -s | -u <key-id>] [-f | -d | -v] [-m <msg>] <tagname> [<head>]' +USAGE='[-l | -L] [<pattern>] | [-a | -s | -u <key-id>] [-f | -d | -v] [-m <msg>] <tagname> [<head>]' 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 >From f0123e2f1c4bd8a15e8d190dc1e0c2745db60278 Mon Sep 17 00:00:00 2001 From: Matthijs Melchior <mmelchior@xxxxxxxxx> Date: Sat, 2 Jun 2007 15:04:46 +0200 Subject: [PATCH] git-tag -L, version 2 style. --pretty=n and exit code --- git-tag.sh | 20 +++++++++++++++----- 1 files changed, 15 insertions(+), 5 deletions(-) diff --git a/git-tag.sh b/git-tag.sh index 45c4253..dafa083 100755 --- a/git-tag.sh +++ b/git-tag.sh @@ -13,6 +13,7 @@ message= username= list= verify= +LINES=3 while case "$#" in 0) break ;; esac do case "$1" in @@ -26,24 +27,33 @@ do -f) force=1 ;; + --pretty=*) + LINES=$(expr "$1" : '--pretty=\(.*\)') + ;; -l|-L) TAGSONLY=true [ "$1" = -L ] && TAGSONLY=false [ "$#" = 1 ] && set x . shift - git rev-parse --symbolic --tags | grep "$@" | + [ "$LINES" -le 0 ] && LINES=999999 + TAGLIST=$(git rev-parse --symbolic --tags | grep "$@") + RC=$? # from grep + printf "%s" "$TAGLIST" | 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/^/ /' - ;; + tag) git cat-file tag "$TAG" | + sed -e '1,/^$/d' \ + -e '/^-----BEGIN PGP SIGNATURE-----$/Q' \ + -e 's/^/ /' | + sed -e "${LINES}q" + ;; esac done - exit $? + exit $RC ;; -m) annotate=1 -- 1.5.2 - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html