X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=templates%2Fhooks--pre-commit.sample;h=043970a751f0a85cfa99684be5d610b33b15a358;hb=c2ff10c98e22ae64d553273e6d67bb123a1c916f;hp=0ba62076fb4a381e588eba90ed639dd560860fd3;hpb=d1f6c18bd6ea5fd373f9f6356e02854678ffa0fd;p=git.git diff --git a/templates/hooks--pre-commit.sample b/templates/hooks--pre-commit.sample index 0ba62076f..439eefda5 100755 --- a/templates/hooks--pre-commit.sample +++ b/templates/hooks--pre-commit.sample @@ -15,4 +15,32 @@ else against=4b825dc642cb6eb9a060e54bf8d69288fbee4904 fi +# If you want to allow non-ascii filenames set this variable to true. +allownonascii=$(git config hooks.allownonascii) + +# Cross platform projects tend to avoid non-ascii filenames; prevent +# them from being added to the repository. We exploit the fact that the +# printable range starts at the space character and ends with tilde. +if [ "$allownonascii" != "true" ] && + # Note that the use of brackets around a tr range is ok here, (it's + # even required, for portability to Solaris 10's /usr/bin/tr), since + # the square bracket bytes happen to fall in the designated range. + test "$(git diff --cached --name-only --diff-filter=A -z $against | + LC_ALL=C tr -d '[ -~]\0')" +then + echo "Error: Attempt to add a non-ascii file name." + echo + echo "This can cause problems if you want to work" + echo "with people on other platforms." + echo + echo "To be portable it is advisable to rename the file ..." + echo + echo "If you know what you are doing you can disable this" + echo "check using:" + echo + echo " git config hooks.allownonascii true" + echo + exit 1 +fi + exec git diff-index --check --cached $against --