From c7ebb9305bf81f528218cbe1fae6bb186c5edaf3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mat=C4=9Bj=20Koci=C3=A1n?= Date: Thu, 6 Oct 2016 17:56:23 +0200 Subject: [PATCH] git hooks: nekontroluj migrace flakem --- _git_hooks/pre-commit | 5 ++++- _git_hooks/update | 10 +++++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/_git_hooks/pre-commit b/_git_hooks/pre-commit index 3ba59e0a..664a06ce 100755 --- a/_git_hooks/pre-commit +++ b/_git_hooks/pre-commit @@ -8,7 +8,10 @@ FLAKE8="`git rev-parse --show-toplevel`/bin/flake8" status=0 -git diff --unified=1 --cached HEAD -- '*py' > $TMPDIFF +# select only changed python files which are not migrations +changed=`git diff --cached --name-only | grep 'py$' | grep -v 'migrations/[0-9]'` + +git diff --unified=1 --cached HEAD -- $changed > $TMPDIFF # only do the check when there are some changes to be commited # otherwise flake8 would hang waiting for input diff --git a/_git_hooks/update b/_git_hooks/update index 2ac082c1..c700a1b1 100755 --- a/_git_hooks/update +++ b/_git_hooks/update @@ -27,7 +27,15 @@ TMPDIFF=`tempfile` [ $refname != "refs/heads/master" -a $refname != "refs/heads/stable" ] && exit 0 -git diff --unified=1 $oldrev $newrev -- '*.py' >${TMPDIFF} +# select only changed python files which are not migrations +changed=`git diff --name-only $oldrev $newrev | grep 'py$' | grep -v 'migrations/[0-9]'` +if [ -z $changed ] ; then + # Nothing to check. Note the exit is necessary -- we would not pass any + # paths to git diff below and it would output the diff unfiltered. + exit 0 +fi + +git diff --unified=1 $oldrev $newrev -- $changed >${TMPDIFF} # there is no working tree in bare git repository, so we recreate it for flake8 git archive $newrev | tar -x -C ${TMPDIR}