summaryrefslogtreecommitdiff
path: root/templates/hooks--pre-commit
diff options
context:
space:
mode:
authorLibravatar Junio C Hamano <junkio@cox.net>2006-01-29 14:52:16 -0800
committerLibravatar Junio C Hamano <junkio@cox.net>2006-01-29 14:52:16 -0800
commitd37fd03222ad6b38aa6e237f5f191238c0544850 (patch)
tree12188d86cc5cf5f7f7bb9bded98715967bd03c3f /templates/hooks--pre-commit
parentdescribe: omit clearing marks on the last one. (diff)
downloadtgif-d37fd03222ad6b38aa6e237f5f191238c0544850.tar.xz
[PATCH] pre-commit sample hook: do not barf on the initial import
The example hook barfs on the initial import. Ideally it should produce a diff from an empty tree, but for now let's stop at squelching the bogus error message. Often an initial import involves tons of badly formatted files from foreign SCM, so not complaining about them like this patch does might actually be a better idea than enforcing the "Perfect Patch" format on them. Signed-off-by: Junio C Hamano <junkio@cox.net>
Diffstat (limited to 'templates/hooks--pre-commit')
-rw-r--r--templates/hooks--pre-commit13
1 files changed, 10 insertions, 3 deletions
diff --git a/templates/hooks--pre-commit b/templates/hooks--pre-commit
index 4bb6803b10..43d3b6ef4a 100644
--- a/templates/hooks--pre-commit
+++ b/templates/hooks--pre-commit
@@ -10,8 +10,16 @@
# This is slightly modified from Andrew Morton's Perfect Patch.
# Lines you introduce should not have trailing whitespace.
# Also check for an indentation that has SP before a TAB.
+
+if git-rev-parse --verify HEAD 2>/dev/null
+then
+ git-diff-index -p -M --cached HEAD
+else
+ # NEEDSWORK: we should produce a diff with an empty tree here
+ # if we want to do the same verification for the initial import.
+ :
+fi |
perl -e '
- my $fh;
my $found_bad = 0;
my $filename;
my $reported_filename = "";
@@ -31,8 +39,7 @@ perl -e '
print STDERR "* $why (line $lineno)\n";
print STDERR "$filename:$lineno:$line\n";
}
- open $fh, "-|", qw(git-diff-index -p -M --cached HEAD);
- while (<$fh>) {
+ while (<>) {
if (m|^diff --git a/(.*) b/\1$|) {
$filename = $1;
next;