(address . guix-patches@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(-)
Toggle diff (38 lines)
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