]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
scripts/git: Stop running the checked-out git scripts
authorteor <teor@torproject.org>
Wed, 12 Feb 2020 10:32:58 +0000 (20:32 +1000)
committerteor <teor@torproject.org>
Wed, 12 Feb 2020 10:37:21 +0000 (20:37 +1000)
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 [new file with mode: 0644]
scripts/git/pre-push.git-hook

diff --git a/changes/bug33284 b/changes/bug33284
new file mode 100644 (file)
index 0000000..e6aed4d
--- /dev/null
@@ -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.
index 7b06f3734da8ab50482f417701cc52e489638457..efa45b98607d4232af5af1c132c842123f7ed880 100755 (executable)
@@ -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