threads / patch / 21487

patchpre-commit.sample: Diff against the empty tree when HEAD is invalid

Subject: [PATCH] pre-commit.sample: Diff against the empty tree when HEAD is invalid

## tl;dr

2 messages between Nov 5, 2009 and Nov 6, 2009. Diffs are folded; open one to read it.

replies: 1people: 2as markdown or json

Björn Steinbrink· Nov 5, 2009, 10:57 UTC · lore

This was already the case for the old "diff --check" call, but the new one that checks whether there are any non-ascii file names was missing it, making that check fail for root commits.

Signed-off-by: Björn Steinbrink <B.Steinbrink@gmx.de>
---
 templates/hooks--pre-commit.sample |   18 +++++++++---------
 1 files changed, 9 insertions(+), 9 deletions(-)
Show changes to templates/hooks--pre-commit.sample +9 −9
diff --git a/templates/hooks--pre-commit.sample b/templates/hooks--pre-commit.sample
index 043970a..439eefd 100755
--- a/templates/hooks--pre-commit.sample
+++ b/templates/hooks--pre-commit.sample
@@ -7,6 +7,14 @@
 #
 # To enable this hook, rename this file to "pre-commit".
 
+if git-rev-parse --verify HEAD >/dev/null 2>&1
+then
+	against=HEAD
+else
+	# Initial commit: diff against an empty tree object
+	against=4b825dc642cb6eb9a060e54bf8d69288fbee4904
+fi
+
 # If you want to allow non-ascii filenames set this variable to true.
 allownonascii=$(git config hooks.allownonascii)
 
@@ -17,7 +25,7 @@ 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 |
+	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."
@@ -35,12 +43,4 @@ then
 	exit 1
 fi
 
-if git-rev-parse --verify HEAD >/dev/null 2>&1
-then
-	against=HEAD
-else
-	# Initial commit: diff against an empty tree object
-	against=4b825dc642cb6eb9a060e54bf8d69288fbee4904
-fi
-
 exec git diff-index --check --cached $against --
-- 
1.6.5.2.143.g8cc62
Heiko Voigt· Nov 6, 2009, 17:11 UTC · re: Björn Steinbrink · lore

Re: [PATCH] pre-commit.sample: Diff against the empty tree when HEAD is invalid

Hallo,
On Thu, Nov 05, 2009 at 11:57:57AM +0100, Björn Steinbrink wrote:
Show 5 quoted lines
> This was already the case for the old "diff --check" call, but the new
> one that checks whether there are any non-ascii file names was missing
> it, making that check fail for root commits.
> 
> Signed-off-by: Björn Steinbrink <B.Steinbrink@gmx.de>
[...]
> -	test "$(git diff --cached --name-only --diff-filter=A -z |
> +	test "$(git diff --cached --name-only --diff-filter=A -z $against |
Looks sensible to me. Thanks for that fix.

As this went unnoticed for quite some time it seems as either not many are actually using our example hook or at least not starting new projects with it. I fit in the latter group I suppose.

cheers Heiko

← back to recent threads