diff options
author | Paul Eggert <eggert@cs.ucla.edu> | 2017-04-29 11:28:52 -0700 |
---|---|---|
committer | Paul Eggert <eggert@cs.ucla.edu> | 2017-04-29 11:42:13 -0700 |
commit | e20ad449deefa7470386bf99e05fd8c67227f678 (patch) | |
tree | e7ba1ccf30798e4c3d5542b80a8dcee43520d703 /build-aux | |
parent | bfc0f610bac3f97930941e9a66cbcd11cd382167 (diff) | |
download | emacs-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-x | build-aux/git-hooks/pre-commit | 22 |
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 -- |