summaryrefslogtreecommitdiffstats
path: root/hooks
diff options
context:
space:
mode:
Diffstat (limited to 'hooks')
-rw-r--r--hooks/pre-commit33
1 files changed, 17 insertions, 16 deletions
diff --git a/hooks/pre-commit b/hooks/pre-commit
index 44010fa1a..bad84b14b 100644
--- a/hooks/pre-commit
+++ b/hooks/pre-commit
@@ -1,23 +1,24 @@
#!/bin/sh
-#check the config, in case the user really wants to allow tabs...
-allowtabs=$(git config hooks.allowtabs)
-if [ "$allowtabs" != "true" ] &&
- git diff --cached | egrep '^\+.* '
-then
- cat<<END;
-Error: This commit would contain a tab, which is against this repo's policy.
+# Enforce citra's whitespace policy
+git config --local core.whitespace tab-in-indent,trailing-space
+
+# If there are whitespace errors, print the offending file names and fail.
+if ! git diff --cached --check; then
+ cat<<END;
+
+Error: This commit would contain trailing spaces or tabs, which is against this repo's policy.
+Please correct those issues before commiting. (Use 'git diff --check' for more details)
+If you know what you are doing, you can try 'git commit --no-verify' to bypass the check
END
- exit 1
+ exit 1
fi
-# If there are whitespace errors, print the offending file names and fail.
-if
-# Use git built-in checks for trailing whitespaces
- ! git diff --check --cached
-then
- cat<<END;
-Error: This commit would contain trailing spaces, which is against this repo's policy.
+# Check for tabs, since tab-in-indent catches only those at the beginning of a line
+if git diff --cached | egrep '^\+.* '; then
+ cat<<END;
+Error: This commit would contain a tab, which is against this repo's policy.
+If you know what you are doing, you can try 'git commit --no-verify' to bypass the check.
END
- exit 1
+ exit 1
fi