From b2d6adf1266554de222fd438e9501c1eb67b429a Mon Sep 17 00:00:00 2001 From: Brad King Date: Mon, 24 Oct 2011 10:36:15 -0400 Subject: [PATCH] pre-commit: Reject changes to KWSys through Git Explain in the rejection message why KWSys cannot be changed in Git. --- Utilities/Git/pre-commit | 28 ++++++++++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/Utilities/Git/pre-commit b/Utilities/Git/pre-commit index e4f9fd0a7..110e9ee35 100755 --- a/Utilities/Git/pre-commit +++ b/Utilities/Git/pre-commit @@ -19,5 +19,29 @@ die() { exit 1 } -# This is a placeholder for future pre-commit checks. -exit 0 +if test -z "$HOOKS_ALLOW_KWSYS"; then + # Disallow changes to KWSys + files=$(git diff-index --name-only --cached HEAD -- Source/kwsys) && + if test -n "$files"; then + die 'Changes to KWSys files + +'"$(echo "$files" | sed 's/^/ /')"' + +cannot be committed through Git. KWSys is kept in a CVS repository +shared by several projects. A robot replays changes committed there +into the Source/kwsys directory in CMake. Please send changes to +this directory separately. Run + + git reset HEAD -- Source/kwsys + +to unstage these changes and then + + git diff -- Source/kwsys > kwsys.patch + +to construct the patch. Alternatively, set environment variable + + HOOKS_ALLOW_KWSYS=1 + +to disable this check and commit the changes locally.' + fi +fi