Merge topic 'local-hooks'

b2d6adf pre-commit: Reject changes to KWSys through Git
3d5869c Add pre-commit|commit-msg|prepare-commit-msg hook placeholders
This commit is contained in:
David Cole 2011-10-25 15:34:30 -04:00 committed by CMake Topic Stage
commit 7b555c0295
5 changed files with 104 additions and 0 deletions

1
.gitattributes vendored
View File

@ -1,4 +1,5 @@
.gitattributes export-ignore
.hooks* export-ignore
bootstrap crlf=input
configure crlf=input

18
.hooks-config.bash Normal file
View File

@ -0,0 +1,18 @@
#=============================================================================
# CMake - Cross Platform Makefile Generator
# Copyright 2000-2011 Kitware, Inc., Insight Software Consortium
#
# Distributed under the OSI-approved BSD License (the "License");
# see accompanying file Copyright.txt for details.
#
# This software is distributed WITHOUT ANY WARRANTY; without even the
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
# See the License for more information.
#=============================================================================
# Loaded by .git/hooks/(pre-commit|commit-msg|prepare-commit-msg)
# during git commit after local hooks have been installed.
hooks_chain_pre_commit="Utilities/Git/pre-commit"
hooks_chain_commit_msg="Utilities/Git/commit-msg"
hooks_chain_prepare_commit_msg="Utilities/Git/prepare-commit-msg"

23
Utilities/Git/commit-msg Executable file
View File

@ -0,0 +1,23 @@
#!/usr/bin/env bash
#=============================================================================
# CMake - Cross Platform Makefile Generator
# Copyright 2000-2011 Kitware, Inc., Insight Software Consortium
#
# Distributed under the OSI-approved BSD License (the "License");
# see accompanying file Copyright.txt for details.
#
# This software is distributed WITHOUT ANY WARRANTY; without even the
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
# See the License for more information.
#=============================================================================
die() {
echo 'commit-msg hook failure' 1>&2
echo '-----------------------' 1>&2
echo '' 1>&2
echo "$@" 1>&2
exit 1
}
# This is a placeholder for future commit-msg checks.
exit 0

47
Utilities/Git/pre-commit Executable file
View File

@ -0,0 +1,47 @@
#!/usr/bin/env bash
#=============================================================================
# CMake - Cross Platform Makefile Generator
# Copyright 2000-2011 Kitware, Inc., Insight Software Consortium
#
# Distributed under the OSI-approved BSD License (the "License");
# see accompanying file Copyright.txt for details.
#
# This software is distributed WITHOUT ANY WARRANTY; without even the
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
# See the License for more information.
#=============================================================================
die() {
echo 'pre-commit hook failure' 1>&2
echo '-----------------------' 1>&2
echo '' 1>&2
echo "$@" 1>&2
exit 1
}
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

View File

@ -0,0 +1,15 @@
#!/usr/bin/env bash
#=============================================================================
# CMake - Cross Platform Makefile Generator
# Copyright 2000-2011 Kitware, Inc., Insight Software Consortium
#
# Distributed under the OSI-approved BSD License (the "License");
# see accompanying file Copyright.txt for details.
#
# This software is distributed WITHOUT ANY WARRANTY; without even the
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
# See the License for more information.
#=============================================================================
# This is a placeholder for future prepare-commit-msg hooks.
exit 0