.git-hooks/pre-commit | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+)
New commits: commit 18ff318c759aa228e317cf916f39bd6bf2d8dfb4 Author: Mike Kaganski <mike.kagan...@collabora.com> AuthorDate: Sat Dec 2 17:57:06 2023 +0100 Commit: Mike Kaganski <mike.kagan...@collabora.com> CommitDate: Sat Dec 2 21:55:33 2023 +0100 Revert "Drop allownonascii check from pre-commit checks" This reverts commit 8a0015c35f3f137e4f3a80e40616bc078e265a1c. See https://lists.freedesktop.org/archives/libreoffice/2023-December/091265.html for details. Change-Id: I9bfa893af935587c7a4681e71b13a734d5f50b5b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160177 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kagan...@collabora.com> diff --git a/.git-hooks/pre-commit b/.git-hooks/pre-commit index 48f131920fd3..521ed202b9ac 100755 --- a/.git-hooks/pre-commit +++ b/.git-hooks/pre-commit @@ -381,6 +381,37 @@ if ( system( "git rev-parse --verify HEAD >/dev/null 2>&1" ) == 0 ) $against="HEAD" } +# If you want to allow non-ascii filenames set this variable to true. +my $allownonascii=`git config hooks.allownonascii`; +chomp $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 ne "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. + `git diff --cached --name-only --diff-filter=A -z $against | \ + LC_ALL=C tr -d '[ -~]\\0'` ne "" ) +{ + print <<EOM; +Error: Attempt to add a non-ascii file name. + +This can cause problems if you want to work +with people on other platforms. + +To be portable it is advisable to rename the file ... + +If you know what you are doing you can disable this +check using: + + git config hooks.allownonascii true + +EOM + exit( 1 ); +} + # Block large files. open( FILES, "git diff --cached --name-only --diff-filter=A -z $against |" ) || die "Cannot run git diff-index."; while (<FILES>)