]> git.ipfire.org Git - thirdparty/git.git/commitdiff
Reintegrate: Accept rerere by default
authorJunio C Hamano <gitster@pobox.com>
Mon, 30 Mar 2009 21:41:37 +0000 (14:41 -0700)
committerJunio C Hamano <gitster@pobox.com>
Mon, 30 Mar 2009 21:41:37 +0000 (14:41 -0700)
Reintegrate

index 0b56201d86f6b0c9ddb9ebca2d3a1481d39c9842..cb75f128fda8533a2682b8cc80270355778fa423 100755 (executable)
@@ -7,16 +7,41 @@ LF='
 '
 
 echo '#!/bin/sh
+accept_rerere=t
+while case "$#,$1" in 0,*) break;; *,-*) ;; *) break ;; esac
+do
+       case "$1" in
+       -n)     accept_rerere= ;;
+       *)      echo "$0 [-n]"; exit 1 ;;
+       esac
+       shift
+done
+
+accept_rerere () {
+       if test -z "$accept_rerere"
+       then
+               return 1
+       fi
+       if git diff HEAD |
+               grep -e "^+<<<<<<<" -e "^+=======" -e "^+>>>>>>>" >/dev/null
+       then
+               return 1
+       else
+               EDITOR=: git commit -a
+               return 0
+       fi
+}
+
 while read branch eh
 do
        case "$eh" in
        "")
                echo >&2 "* $branch"
-               git merge "$branch" || break ;;
+               git merge "$branch" || accept_rerere || exit ;;
        pick" "*)
                echo >&2 "* $eh"
-               git cherry-pick "$branch" || break ;;
-       *) echo >&2 "Eh? $branch $eh"; break ;;
+               git cherry-pick "$branch" || exit ;;
+       *) echo >&2 "Eh? $branch $eh"; exit ;;
        esac
 done <<EOF'