Files
catalyst/etc/git-hooks/pre-commit
T
Eddie Hebert c6f8f430d7 DEV: Handles empty stash case in pre-commit hook.
Handles the case when reword is called and the `commit --amend` invokes
the pre-commit hook, when there is no stash the `git stash pop -q`
in that case leaves the rebase in an odd state.
Fixes by only calling the stash pop if changes were saved.
2013-03-29 17:06:37 -04:00

34 lines
909 B
Bash
Executable File

#!/bin/sh
#
# An hook script to verify linting and passing unit tests.
#
# Called by "git commit" with no arguments. The hook should
# exit with non-zero status after issuing an appropriate message if
# it wants to stop the commit.
#
# To enable this hook, copy or symlink to your repo's
# ".git/hooks/pre-commit".
#
# Please read the following as it will execute on your machine on each commit.
set -e
# stash everything that wasn't just staged
# so that we are only testing the staged code
stash_result=$(git stash --keep-index)
# Run flake8 linting
flake8 zipline tests
# Run unit tests
nosetests -x
# restore unstaged code
# N.B. this won't run if linting or unit tests fail
# But if either fail, it's probably best to have only the offending
# staged commits 'active', anyway.
stash_result=$(git stash --keep-index)
if [ "$stash_result" != "No local changes to save." ]
then
git stash pop -q
fi