aboutsummaryrefslogtreecommitdiffhomepage
path: root/dev
diff options
context:
space:
mode:
authorGravatar Gaëtan Gilbert <gaetan.gilbert@skyskimmer.net>2018-02-20 14:52:49 +0100
committerGravatar Gaëtan Gilbert <gaetan.gilbert@skyskimmer.net>2018-02-23 23:59:30 +0100
commit6ef5c101facffc902577519bcfb0ffdcbe1be166 (patch)
tree99a9166f3e0d4f2d304072c29e712c6cc0c4df46 /dev
parentaec63ba9c8f6840d98ba731640a786138d836343 (diff)
Check whitespace errors per-commit.
Otherwise it is possible to detect errors that are not fixed by git rebase since that works per-commit.
Diffstat (limited to 'dev')
-rwxr-xr-xdev/lint-commits.sh19
1 files changed, 13 insertions, 6 deletions
diff --git a/dev/lint-commits.sh b/dev/lint-commits.sh
index eb12bc227..d8043558e 100755
--- a/dev/lint-commits.sh
+++ b/dev/lint-commits.sh
@@ -19,14 +19,21 @@ fi
BASE_COMMIT="$1"
HEAD_COMMIT="$2"
-# git diff --check
-# uses .gitattributes to know what to check
-if git diff --check "$BASE_COMMIT" "$HEAD_COMMIT";
+bad=()
+while IFS= read -r commit; do
+ echo Checking "$commit"
+ # git diff --check
+ # uses .gitattributes to know what to check
+ if ! git diff --check "${commit}^" "$commit";
+ then
+ bad+=("$commit")
+ fi
+done < <(git rev-list "$HEAD_COMMIT" --not "$BASE_COMMIT" --)
+
+if [ "${#bad[@]}" != 0 ]
then
- :
-else
>&2 echo "Whitespace errors!"
- >&2 echo "Running 'git diff --check $BASE_COMMIT $HEAD_COMMIT'."
+ >&2 echo "In commits ${bad[*]}"
>&2 echo "If you use emacs, you can prevent this kind of error from reocurring by installing ws-butler and enabling ws-butler-convert-leading-tabs-or-spaces."
exit 1
fi