summaryrefslogtreecommitdiff
path: root/build-aux
diff options
context:
space:
mode:
authorJim Porter <jporterbugs@gmail.com>2023-04-23 12:04:34 -0700
committerJim Porter <jporterbugs@gmail.com>2023-04-23 12:07:08 -0700
commite26dcc0e1441ded286b83eefb358d965748dd6db (patch)
treea71b15094d1cf26363ada51d3f9f4e87d7dcc8ca /build-aux
parent9914de503bd39b5a8b55a472d7cee6832a72e61d (diff)
downloademacs-e26dcc0e1441ded286b83eefb358d965748dd6db.tar.gz
; Fix logic of Git pre-push hook when pushing a new branch
* build-aux/git-hooks/pre-push: Update the Git command to run on each iteration.
Diffstat (limited to 'build-aux')
-rwxr-xr-xbuild-aux/git-hooks/pre-push18
1 files changed, 9 insertions, 9 deletions
diff --git a/build-aux/git-hooks/pre-push b/build-aux/git-hooks/pre-push
index adcf27d4a5d..65c96bfdec9 100755
--- a/build-aux/git-hooks/pre-push
+++ b/build-aux/git-hooks/pre-push
@@ -49,19 +49,19 @@ $awk -v origin_name="$1" '
$2 ~ /^[a-z0-9]{40}$/ {
newref = $2
# If the remote SHA is all zeroes, this is a new object to be
- # pushed (likely a branch). Go backwards until we find a SHA on
- # an origin branch.
+ # pushed (likely a branch)...
if ($4 ~ /^0{40}$/) {
back = 0
- cmd = ("git branch -r -l '\''" origin_name "/*'\'' --contains " \
- newref "~" back)
- while ((cmd | getline) == 0) {
-
- # Only look back at most 1000 commits, just in case...
- if (back++ > 1000)
+ # ... Go backwards until we find a SHA on an origin branch.
+ # Stop trying after 1000 commits, just in case...
+ for (back = 0; back < 1000; back++) {
+ cmd = ("git branch -r -l '\''" origin_name "/*'\''" \
+ " --contains " newref "~" back)
+ rv = (cmd | getline)
+ close(cmd)
+ if (rv > 0)
break;
}
- close(cmd)
cmd = ("git rev-parse " newref "~" back)
cmd | getline oldref