git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH] hooks--update: allow deleting a tag through git push <remote> :<tag>

From
Gerrit Pape <pape@smarden.org>
Date
Nov 7, 2007, 10:34 UTC
Message-ID
<20071107103450.29849.qmail@c27a4ce40673ff.315fe32.mid.smarden.org>

The update hook interpretes deleting a tag, no matter if annotated or not, through git push <remote> :<tag> as unannotated tag, and declines it by default:

 $ git push origin :atag
 deleting 'refs/tags/atag'
 *** The un-annotated tag, atag, is not allowed in this repository
 *** Use 'git tag [ -a | -s ]' for tags you want to propagate.
 ng refs/tags/atag hook declined
 error: hooks/update exited with error code 1
 error: hook declined to update refs/tags/atag
 error: failed to push to 'monolith:/git/qm/test-repo'

With this patch deleting a tag is allowed unconditionally, just as deleting a branch.

Signed-off-by: Gerrit Pape <pape@smarden.org>
---
 templates/hooks--update |    9 ++++++---
 1 files changed, 6 insertions(+), 3 deletions(-)
diff --git a/templates/hooks--update b/templates/hooks--update
index 65e8c32..a109b1b 100644
--- a/templates/hooks--update
+++ b/templates/hooks--update
@@ -43,7 +43,7 @@ fi
 # --- Check types
 # if $newrev is 0000...0000, it's a commit to delete a branch
 if [ "$newrev" = "0000000000000000000000000000000000000000" ]; then
-	newrev_type=commit
+	newrev_type=delete
 else
 	newrev_type=$(git-cat-file -t $newrev)
 fi
@@ -58,13 +58,16 @@ case "$refname","$newrev_type" in
 			exit 1
 		fi
 		;;
+	refs/tags/*,delete)
+		# delete tag
+		;;
 	refs/tags/*,tag)
 		# annotated tag
 		;;
-	refs/heads/*,commit)
+	refs/heads/*,commit | refs/heads/*,delete)
 		# branch
 		;;
-	refs/remotes/*,commit)
+	refs/remotes/*,commit | refs/remotes/*,delete)
 		# tracking branch
 		;;
 	*)
-- 
1.5.3.5
Next: Junio C Hamano
Message 1 of 3 in “hooks--update: allow deleting a tag through git push <remote> :<tag>”
  1. hooks--update: allow deleting a tag through git push <remote> :<tag>Gerrit Pape, Nov 7, 2007
  2. Junio C HamanoNov 8, 2007
  3. hooks--update: decline deleting tags or branches by default, add config optionsGerrit Pape, Nov 8, 2007

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.