summaryrefslogtreecommitdiff
path: root/scripts/git
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2019-08-26 10:15:25 -0400
committerNick Mathewson <nickm@torproject.org>2019-08-26 10:15:25 -0400
commiteff95429fd5fd1e7a9431c7ccdbe89310c4b9704 (patch)
treeeb6d54f7c16524385e588e766fa640059ccec730 /scripts/git
parent24bc2cd7b5ab32d6a34dee3a27d5d383a383b270 (diff)
parentbdcccb97769b2247e22cb8e1dc05b8274d46fafd (diff)
downloadtor-eff95429fd5fd1e7a9431c7ccdbe89310c4b9704.tar.gz
tor-eff95429fd5fd1e7a9431c7ccdbe89310c4b9704.zip
Merge remote-tracking branch 'tor-github/pr/1241'
Diffstat (limited to 'scripts/git')
-rwxr-xr-xscripts/git/pre-commit.git-hook16
-rwxr-xr-xscripts/git/pre-push.git-hook18
2 files changed, 20 insertions, 14 deletions
diff --git a/scripts/git/pre-commit.git-hook b/scripts/git/pre-commit.git-hook
index 7c7cf88574..b2a1847a2b 100755
--- a/scripts/git/pre-commit.git-hook
+++ b/scripts/git/pre-commit.git-hook
@@ -4,7 +4,8 @@
# tor git repo and make sure it has permission to execute.
#
# This is pre-commit git hook script that prevents commiting your changeset if
-# it fails our code formatting or changelog entry formatting checkers.
+# it fails our code formatting, changelog entry formatting, module include
+# rules, or best practices tracker.
workdir=$(git rev-parse --show-toplevel)
@@ -40,6 +41,15 @@ if test -e scripts/maint/practracker/includes.py; then
python scripts/maint/practracker/includes.py
fi
-if [ -e scripts/maint/practracker/practracker.py ]; then
- python3 ./scripts/maint/practracker/practracker.py "$workdir"
+# Only call practracker if ${PT_DIR}/.enable_practracker_in_hooks exists
+# We do this check so that we can enable practracker in hooks in master, and
+# disable it on maint branches
+PT_DIR=scripts/maint/practracker
+
+if [ -e "${PT_DIR}/practracker.py" ]; then
+ if [ -e "${PT_DIR}/.enable_practracker_in_hooks" ]; then
+ if ! python3 "${PT_DIR}/practracker.py" "$workdir"; then
+ exit 1
+ fi
+ fi
fi
diff --git a/scripts/git/pre-push.git-hook b/scripts/git/pre-push.git-hook
index 40a3bffa79..f4504c4215 100755
--- a/scripts/git/pre-push.git-hook
+++ b/scripts/git/pre-push.git-hook
@@ -1,10 +1,11 @@
#!/usr/bin/env bash
# git pre-push hook script to:
+# 0) Call the pre-commit hook, if it is available
# 1) prevent "fixup!" and "squash!" commit from ending up in master, release-*
# or maint-*
# 2) Disallow pushing branches other than master, release-*
-# and maint-* to origin (e.g. gitweb.torproject.org).
+# and maint-* to origin (e.g. gitweb.torproject.org)
#
# To install this script, copy it into .git/hooks/pre-push path in your
# local copy of git repository. Make sure it has permission to execute.
@@ -21,6 +22,11 @@ z40=0000000000000000000000000000000000000000
upstream_name=${TOR_UPSTREAM_REMOTE_NAME:-"upstream"}
+# Are you adding a new check to the git hooks?
+# - Common checks belong in the pre-commit hook
+# - Push-only checks belong in the pre-push hook
+#
+# Call the pre-commit hook for the common checks, if it is executable.
workdir=$(git rev-parse --show-toplevel)
if [ -x "$workdir/.git/hooks/pre-commit" ]; then
if ! "$workdir"/.git/hooks/pre-commit; then
@@ -28,16 +34,6 @@ if [ -x "$workdir/.git/hooks/pre-commit" ]; then
fi
fi
-PT_DIR=scripts/maint/practracker
-
-if [ -e "${PT_DIR}/practracker.py" ]; then
- if [ -e "${PT_DIR}/.enable_practracker_in_hooks" ]; then
- if ! python3 "${PT_DIR}/practracker.py" "$workdir"; then
- exit 1
- fi
- fi
-fi
-
remote="$1"
remote_name=$(git remote --verbose | grep "$2" | awk '{print $1}' | head -n 1)