>From acd837f97f5701a3ebdb1bbdd79fac4ed8153629 Mon Sep 17 00:00:00 2001 From: Paul Eggert
Date: Sat, 22 Nov 2014 15:46:17 -0800 Subject: [PATCH] Add git commit hooks that do some simple checks on commits. * autogen.sh: Install Git hooks, if using Git. * build-aux/git-hooks/commit-msg, build-aux/git-hooks/pre-commit: New files, which are Git hooks that check for portable file names, and do some simple checks for commit message format. --- autogen.sh | 40 +++++++++++++++++++ build-aux/git-hooks/commit-msg | 90 ++++++++++++++++++++++++++++++++++++++++++ build-aux/git-hooks/pre-commit | 46 +++++++++++++++++++++ 3 files changed, 176 insertions(+) create mode 100755 build-aux/git-hooks/commit-msg create mode 100755 build-aux/git-hooks/pre-commit diff --git a/autogen.sh b/autogen.sh index bc8a73d..69812cd 100755 --- a/autogen.sh +++ b/autogen.sh @@ -208,6 +208,46 @@ autoreconf -i -I m4 || exit $? ## cause 'make' to needlessly run 'autoheader'. echo timestamp > src/stamp-h.in || exit +## Install Git hooks, if using Git. +if test -d .git/hooks; then + tailored_hooks= + sample_hooks= + + for hook in commit-msg pre-commit; do + cmp build-aux/git-hooks/$hook .git/hooks/$hook >/dev/null 2>&1 || + tailored_hooks="$tailored_hooks $hook" + done + for hook in applypatch-msg pre-applypatch; do + cmp .git/hooks/$hook.sample .git/hooks/$hook >/dev/null 2>&1 || + sample_hooks="$sample_hooks $hook" + done + + if test -n "$tailored_hooks$sample_hooks"; then + echo "Installing git hooks..." + + case `cp --help 2>/dev/null` in + *--backup*--verbose*) + cp_options='--backup=numbered --verbose';; + *) + cp_options='';; + esac + + if test -n "$tailored_hooks"; then + for hook in $tailored_hooks; do + cp $cp_options build-aux/git-hooks/$hook .git/hooks || exit + chmod a-w .git/hooks/$hook || exit + done + fi + + if test -n "$sample_hooks"; then + for hook in $sample_hooks; do + cp $cp_options .git/hooks/$hook.sample .git/hooks/$hook || exit + chmod a-w .git/hooks/$hook || exit + done + fi + fi +fi + echo "You can now run \`./configure'." exit 0 diff --git a/build-aux/git-hooks/commit-msg b/build-aux/git-hooks/commit-msg new file mode 100755 index 0000000..6a09edd --- /dev/null +++ b/build-aux/git-hooks/commit-msg @@ -0,0 +1,90 @@ +#!/bin/sh +# Check the format of GNU Emacs change log entries. + +# Copyright 2014 Free Software Foundation, Inc. + +# This file is part of GNU Emacs. + +# GNU Emacs is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. + +# GNU Emacs is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with GNU Emacs. If not, see