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

2 messages Options
Embed this post
Permalink
Björn Steinbrink

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

Reply Threaded More More options
Print post
Permalink
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 <[hidden email]>
---
 templates/hooks--pre-commit.sample |   18 +++++++++---------
 1 files changed, 9 insertions(+), 9 deletions(-)

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
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [hidden email]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Heiko Voigt-3

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

Reply Threaded More More options
Print post
Permalink
Hallo,

On Thu, Nov 05, 2009 at 11:57:57AM +0100, Björn Steinbrink wrote:
> 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 <[hidden email]>

[...]
> - 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
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [hidden email]
More majordomo info at  http://vger.kernel.org/majordomo-info.html