use struct sha1_array in diff_tree_combined()
[gitweb.git] / t / t7503-pre-commit-hook.sh
index 8528f64c8d1491fd3c279f030b6f8aee2050cdf7..ee7f0cd4596f982f16cbf3859675e6faba424faa 100755 (executable)
@@ -84,5 +84,38 @@ test_expect_success POSIXPERM '--no-verify with non-executable hook' '
        git commit --no-verify -m "more content"
 
 '
+chmod +x "$HOOK"
+
+# a hook that checks $GIT_PREFIX and succeeds inside the
+# success/ subdirectory only
+cat > "$HOOK" <<EOF
+#!/bin/sh
+test \$GIT_PREFIX = success/
+EOF
+
+test_expect_success 'with hook requiring GIT_PREFIX' '
+
+       echo "more content" >> file &&
+       git add file &&
+       mkdir success &&
+       (
+               cd success &&
+               git commit -m "hook requires GIT_PREFIX = success/"
+       ) &&
+       rmdir success
+'
+
+test_expect_success 'with failing hook requiring GIT_PREFIX' '
+
+       echo "more content" >> file &&
+       git add file &&
+       mkdir fail &&
+       (
+               cd fail &&
+               test_must_fail git commit -m "hook must fail"
+       ) &&
+       rmdir fail &&
+       git checkout -- file
+'
 
 test_done