summaryrefslogtreecommitdiff
path: root/pre-push
diff options
context:
space:
mode:
authorSebastian <sebasjm@gmail.com>2021-04-28 15:35:46 -0300
committerSebastian <sebasjm@gmail.com>2021-04-28 15:35:46 -0300
commit88c8009524e7e96bfc7bac13f80f889ec90a7342 (patch)
tree33ccb419de0a499c2d3a32e461b2764e8984aa08 /pre-push
parent08a696ad83613da157c223caa9c7f75c49dc1df1 (diff)
downloadmerchant-backoffice-88c8009524e7e96bfc7bac13f80f889ec90a7342.tar.gz
merchant-backoffice-88c8009524e7e96bfc7bac13f80f889ec90a7342.tar.bz2
merchant-backoffice-88c8009524e7e96bfc7bac13f80f889ec90a7342.zip
add hook test
Diffstat (limited to 'pre-push')
-rwxr-xr-xpre-push88
1 files changed, 88 insertions, 0 deletions
diff --git a/pre-push b/pre-push
new file mode 100755
index 0000000..e76710d
--- /dev/null
+++ b/pre-push
@@ -0,0 +1,88 @@
+#!/bin/sh
+
+# An example hook script to verify what is about to be pushed. Called by "git
+# push" after it has checked the remote status, but before anything has been
+# pushed. If this script exits with a non-zero status nothing will be pushed.
+#
+# This hook is called with the following parameters:
+#
+# $1 -- Name of the remote to which the push is being done
+# $2 -- URL to which the push is being done
+#
+# If pushing without using a named remote those arguments will be equal.
+#
+# Information about the commits which are being pushed is supplied as lines to
+# the standard input in the form:
+#
+# <local ref> <local sha1> <remote ref> <remote sha1>
+#
+# This sample shows how to prevent push of commits where the log message starts
+# with "WIP" (work in progress).
+
+remote="$1"
+url="$2"
+
+z40=0000000000000000000000000000000000000000
+
+while read local_ref local_sha remote_ref remote_sha
+do
+ if [ "$local_sha" = $z40 ]
+ then
+ # Handle delete
+ :
+ else
+ if [ "$remote_sha" = $z40 ]
+ then
+ # New branch, examine all commits
+ range="$local_sha"
+ else
+ # Update to existing branch, examine new commits
+ range="$remote_sha..$local_sha"
+ fi
+
+ # Check for WIP commit
+ commit=`git rev-list -n 1 --grep '^WIP' "$range"`
+ # if [ -n "$commit" ]
+ # then
+ # echo >&2 "Found WIP commit in $local_ref, not pushing"
+ # echo "$commit"
+ # exit 1
+ # fi
+ fi
+done
+
+#
+# A hook script to verify that a push is not done with untracked source file
+#
+
+# Perl-style regular expression which limits the files we interpret as source files.
+# The default pattern here excludes CMakeLists.txt files and any .h/.cpp/.cmake files.
+# Extend/adapt this to your needs. Alternatively, set the pattern in your repo via:
+# git config hooks.prepush.sourcepattern "$your-pattern"
+
+# pattern=$(git config --get hooks.prepush.sourcepattern)
+# if [ -z "$pattern" ]; then
+# pattern=""
+# fi
+
+files=$(git status -u --porcelain --no-column) # | grep -v -P "$pattern")
+if [ -n "$files" ]; then
+ echo
+ echo "ERROR: Preventing push with untracked source files:"
+ echo
+ echo "$files" | sed "s/^/ /"
+ echo
+ echo "Either include these files in your commits, add them to .gitignore"
+ echo "or stash them with git stash -u."
+ echo
+ exit 1
+fi
+
+#
+# Run checks before push
+#
+
+
+make check || exit 1
+
+exit 0