git-tag: -l to list tags (usability).
authorJunio C Hamano <junkio@cox.net>
Fri, 17 Feb 2006 12:04:39 +0000 (04:04 -0800)
committerJunio C Hamano <junkio@cox.net>
Fri, 17 Feb 2006 12:04:39 +0000 (04:04 -0800)
git-tag -l lists all tags, and git-tag -l <pattern> filters the
result with <pattern>.

Signed-off-by: Junio C Hamano <junkio@cox.net>
Documentation/git-tag.txt
git-tag.sh

index e8892bb..e1c76c6 100644 (file)
@@ -8,11 +8,13 @@ git-tag -  Create a tag object signed with GPG
 
 SYNOPSIS
 --------
+[verse]
 'git-tag' [-a | -s | -u <key-id>] [-f | -d] [-m <msg>] <name> [<head>]
+'git-tag' -l [<pattern>]
 
 DESCRIPTION
 -----------
-Adds a 'tag' reference in .git/refs/tags/
+Adds a 'tag' reference in `.git/refs/tags/`
 
 Unless `-f` is given, the tag must not yet exist in
 `.git/refs/tags/` directory.
@@ -32,6 +34,9 @@ GnuPG key for signing.
 
 `-d <tag>` deletes the tag.
 
+`-l <pattern>` lists tags that match the given pattern (or all
+if no pattern is given).
+
 OPTIONS
 -------
 -a::
@@ -49,6 +54,9 @@ OPTIONS
 -d::
        Delete an existing tag with the given name
 
+-l <pattern>::
+       List tags that match the given pattern (or all if no pattern is given).
+
 -m <msg>::
        Use the given tag message (instead of prompting)
 
index c74e1b4..76e51ed 100755 (executable)
@@ -1,7 +1,7 @@
 #!/bin/sh
 # Copyright (c) 2005 Linus Torvalds
 
-USAGE='[-a | -s | -u <key-id>] [-f | -d] [-m <msg>] <tagname> [<head>]'
+USAGE='-l [<pattern>] | [-a | -s | -u <key-id>] [-f | -d] [-m <msg>] <tagname> [<head>]'
 SUBDIRECTORY_OK='Yes'
 . git-sh-setup
 
@@ -10,6 +10,7 @@ signed=
 force=
 message=
 username=
+list=
 while case "$#" in 0) break ;; esac
 do
     case "$1" in
@@ -23,6 +24,17 @@ do
     -f)
        force=1
        ;;
+    -l)
+        cd "$GIT_DIR/refs" &&
+       case "$#" in
+       1)
+               find tags -type f -print ;;
+       *)
+               shift
+               find tags -type f -print | grep "$@" ;;
+       esac
+       exit $?
+       ;;
     -m)
        annotate=1
        shift