[tor-commits] [tor/master] scripts/git: Stop running the checked-out git scripts
nickm at torproject.org
nickm at torproject.org
Wed Feb 12 13:34:59 UTC 2020
commit 99d957696b3274a334448f066ba418b51cc887ee
Author: teor <teor at torproject.org>
Date: Wed Feb 12 20:32:58 2020 +1000
scripts/git: Stop running the checked-out git scripts
Stop executing the checked-out pre-commit hook from the pre-push hook.
Instead, execute the copy in the user's git dir.
Fixes bug 33284; bugfix on 0.4.1.1-alpha.
---
changes/bug33284 | 4 ++++
scripts/git/pre-push.git-hook | 9 +++++++--
2 files changed, 11 insertions(+), 2 deletions(-)
diff --git a/changes/bug33284 b/changes/bug33284
new file mode 100644
index 000000000..e6aed4d2d
--- /dev/null
+++ b/changes/bug33284
@@ -0,0 +1,4 @@
+ o Minor bugfixes (git scripts):
+ - Stop executing the checked-out pre-commit hook from the pre-push hook.
+ Instead, execute the copy in the user's git dir. Fixes bug 33284; bugfix
+ on 0.4.1.1-alpha.
diff --git a/scripts/git/pre-push.git-hook b/scripts/git/pre-push.git-hook
index 7b06f3734..efa45b986 100755
--- a/scripts/git/pre-push.git-hook
+++ b/scripts/git/pre-push.git-hook
@@ -26,7 +26,11 @@ z40=0000000000000000000000000000000000000000
upstream_name=${TOR_UPSTREAM_REMOTE_NAME:-"upstream"}
+# The working directory
workdir=$(git rev-parse --show-toplevel)
+# The .git directory
+# If $workdir is a worktree, then $gitdir is not $workdir/.git
+gitdir=$(git rev-parse --git-dir)
cd "$workdir" || exit 1
@@ -58,7 +62,8 @@ do
fi
# Call the pre-commit hook for the common checks, if it is executable
- if [ -x scripts/git/pre-commit.git-hook ]; then
+ pre_commit=${gitdir}/hooks/pre-commit
+ if [ -x "$pre_commit" ]; then
# Only check the files newly modified in this branch
CHECK_FILTER="git diff --name-only --diff-filter=ACMR $range"
# Use the appropriate owned tor source list to filter the changed
@@ -81,7 +86,7 @@ do
# We want word splitting here, because file names are space
# separated
# shellcheck disable=SC2086
- if ! scripts/git/pre-commit.git-hook $CHECK_FILES ; then
+ if ! "$pre_commit" $CHECK_FILES ; then
exit 1
fi
fi
More information about the tor-commits
mailing list