emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] master e20ad44: Allow bypassing of some checks when mergin


From: Paul Eggert
Subject: [Emacs-diffs] master e20ad44: Allow bypassing of some checks when merging
Date: Sat, 29 Apr 2017 14:42:17 -0400 (EDT)

branch: master
commit e20ad449deefa7470386bf99e05fd8c67227f678
Author: Paul Eggert <address@hidden>
Commit: Paul Eggert <address@hidden>

    Allow bypassing of some checks when merging
    
    * build-aux/git-hooks/pre-commit: Don't check merged-in changes.
---
 build-aux/git-hooks/pre-commit | 22 +++++++++++++++++++---
 1 file changed, 19 insertions(+), 3 deletions(-)

diff --git a/build-aux/git-hooks/pre-commit b/build-aux/git-hooks/pre-commit
index 6483bfc..548bf93 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 --



reply via email to

[Prev in Thread] Current Thread [Next in Thread]