40 lines
907 B
Bash
40 lines
907 B
Bash
#!/usr/bin/env bash
|
|
|
|
#
|
|
# The following snippet can be used to WARN about "!fixup" / "WIP" / "TMP"
|
|
# commits when pushing
|
|
#
|
|
# Aborting the push is possible
|
|
#
|
|
|
|
remote="$1"
|
|
url="$2"
|
|
|
|
z40=0000000000000000000000000000000000000000
|
|
|
|
while read local_ref local_sha remote_ref remote_sha
|
|
do
|
|
if [ "$local_sha" != $z40 ]
|
|
then
|
|
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|^TMP|!fixup' "$range")
|
|
if [ -n "$commit" ]
|
|
then
|
|
echo >&2 "Found WIP commit in $local_ref, not pushing"
|
|
|
|
# TO NOT ONLY WARN BUT ABORT UNCOMMENT THE NEXT LINE
|
|
# exit 1
|
|
fi
|
|
fi
|
|
done
|
|
|
|
exit 0
|