Subject: [PATCH] maint: Only run `make authenticate` when pushing commits.
From: Leo Famulari <[email-masked]>
To: [email-masked]
Date: Fri, 14 Aug 2020 16:30:47 -0400
List-Id: <debbugs-submit.debbugs.gnu.org>

When deleting a remote branch, no commits are pushed to the remote, and
thus there are no signatures to be verified.

* etc/git/pre-push: Exit early when deleting a branch.
---
 etc/git/pre-push | 28 ++++++++++++++++++----------
 1 file changed, 18 insertions(+), 10 deletions(-)

diff --git a/etc/git/pre-push b/etc/git/pre-push
index 415345fc75..689673dcc9 100755
--- a/etc/git/pre-push
+++ b/etc/git/pre-push
@@ -20,13 +20,21 @@
 #
 #   <local ref> <local sha1> <remote ref> <remote sha1>
 
-# Only use the hook when pushing to Savannah.
-case "$2" in
-    *.gnu.org*)
-	exec make authenticate check-channel-news
-	exit 127
-	;;
-    *)
-	exit 0
-	;;
-esac
+z40=0000000000000000000000000000000000000000
+
+# If deleting a branch, there are no commits to check.
+if [ "$local_sha" = $z40 ]
+then
+	true
+else
+	# Only use the hook when pushing to Savannah.
+	case "$2" in
+	    *.gnu.org*)
+		exec make authenticate check-channel-news
+		exit 127
+		;;
+	    *)
+		exit 0
+		;;
+	esac
+fi
-- 
2.28.0