Commits

Anonymous committed 453c1e8

git-tag -d: allow deleting multiple tags at once.

Signed-off-by: Junio C Hamano <junkio@cox.net>

  • Participants
  • Parent commits 6802563

Comments (0)

Files changed (2)

File Documentation/git-tag.txt

 
 NAME
 ----
-git-tag - Create or verify a tag object signed with GPG
+git-tag - Create, list, delete or verify a tag object signed with GPG
 
 
 SYNOPSIS
 --------
 [verse]
-'git-tag' [-a | -s | -u <key-id>] [-f | -d | -v] [-m <msg> | -F <file>]
-	 <name> [<head>]
+'git-tag' [-a | -s | -u <key-id>] [-f | -v] [-m <msg> | -F <file>]  <name> [<head>]
+'git-tag' -d <name>...
 'git-tag' -l [<pattern>]
 
 DESCRIPTION
 	Replace an existing tag with the given name (instead of failing)
 
 -d::
-	Delete an existing tag with the given name
+	Delete existing tags with the given names.
 
 -v::
 	Verify the gpg signature of given the tag
 	;;
     -d)
     	shift
-	tag_name="$1"
-	tag=$(git-show-ref --verify --hash -- "refs/tags/$tag_name") ||
-		die "Seriously, what tag are you talking about?"
-	git-update-ref -m 'tag: delete' -d "refs/tags/$tag_name" "$tag" &&
-		echo "Deleted tag $tag_name."
-	exit $?
+	had_error=0
+	for tag
+	do
+		cur=$(git-show-ref --verify --hash -- "refs/tags/$tag") || {
+			echo >&2 "Seriously, what tag are you talking about?"
+			had_error=1
+			continue
+		}
+		git-update-ref -m 'tag: delete' -d "refs/tags/$tag" "$cur" || {
+			had_error=1
+			continue
+		}
+		echo "Deleted tag $tag."
+	done
+	exit $had_error
 	;;
     -v)
 	shift