summaryrefslogtreecommitdiff
path: root/build-aux
diff options
context:
space:
mode:
authorPaul Eggert <eggert@cs.ucla.edu>2017-04-29 11:28:52 -0700
committerPaul Eggert <eggert@cs.ucla.edu>2017-04-29 11:42:13 -0700
commite20ad449deefa7470386bf99e05fd8c67227f678 (patch)
treee7ba1ccf30798e4c3d5542b80a8dcee43520d703 /build-aux
parentbfc0f610bac3f97930941e9a66cbcd11cd382167 (diff)
downloademacs-e20ad449deefa7470386bf99e05fd8c67227f678.tar.gz
Allow bypassing of some checks when merging
* build-aux/git-hooks/pre-commit: Don't check merged-in changes.
Diffstat (limited to 'build-aux')
-rwxr-xr-xbuild-aux/git-hooks/pre-commit22
1 files changed, 19 insertions, 3 deletions
diff --git a/build-aux/git-hooks/pre-commit b/build-aux/git-hooks/pre-commit
index 6483bfc6b3e..548bf933f0c 100755
--- a/build-aux/git-hooks/pre-commit
+++ b/build-aux/git-hooks/pre-commit
@@ -25,16 +25,32 @@ exec >&2
. git-sh-setup
+# When doing a two-way merge, ignore problems that came from the other
+# side of the merge.
+head=HEAD
+if test -e "$GIT_DIR"/MERGE_HEAD; then
+ merge_heads=`cat "$GIT_DIR"/MERGE_HEAD` || exit
+ for merge_head in $merge_heads; do
+ case $head in
+ HEAD) head=$merge_head;;
+ # For multi-head merges, there's no easy way to ignore merged-in
+ # changes. But if you're doing multi-head merges, presumably
+ # you know how to handle any ensuing problems.
+ *) head=HEAD; break;;
+ esac
+ done
+fi
+
git_diff='git diff --cached --name-only --diff-filter=A'
ok_chars='\0+[=-=]./0-9A-Z_a-z'
-nbadchars=`$git_diff -z HEAD | tr -d "$ok_chars" | wc -c`
+nbadchars=`$git_diff -z $head | tr -d "$ok_chars" | wc -c`
if test "$nbadchars" -ne 0; then
echo "File name does not consist of -+./_ or ASCII letters or digits."
exit 1
fi
-for new_name in `$git_diff HEAD`; do
+for new_name in `$git_diff $head`; do
case $new_name in
-* | */-*)
echo "$new_name: File name component begins with '-'."
@@ -53,4 +69,4 @@ done
# tests so that trailing spaces are generated on the fly rather than
# being committed as source.
-exec git diff-index --check --cached HEAD --
+exec git diff-index --check --cached $head --