3 accept_rerere
=t generate
=no update
= diff=
4 while case "$#,$1" in 0,*) break;; *,-*) ;; esac
8 -d) update
=${2?"diff with what?"}
12 -u) update
=${2?"update what?"}
24 if test -z "$accept_rerere"
29 grep -e "^.+" -e "^+." |
30 grep -e "^..<<<<<<<" -e "^..
=======" -e "^..
>>>>>>>" >/dev/null
34 EDITOR=: git commit -a --no-verify
35 echo "Accepted previous resolution
"
42 case "$branch" in '#'*) continue ;; esac
45 save=$(git rev-parse --verify HEAD)
48 git merge "$branch" || accept_rerere || exit
50 this=$(git rev-parse --verify HEAD)
51 if test "$this" = "$save"
54 elif git show-ref -q --verify "refs
/merge-fix
/$branch"
56 git cherry-pick --no-commit "refs
/merge-fix
/$branch" &&
57 EDITOR=: git commit --amend -a
62 git cherry-pick "$branch" || exit ;;
63 *) echo >&2 "Eh?
$branch $eh"; exit ;;
69 if test -n "$update" && test $# = 0
71 set x $(sed -n -e '2s/^# //p' <"$update") &&
75 # Generation (or updating)
77 x40='[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]'
78 x40="$x40$x40$x40$x40$x40$x40$x40$x40"
84 "Merge branch
'"*"'"*)
85 branch=$(expr "$msg" : "Merge branch
'\(.*\)'")
88 "Merge remote branch
'"*"'"*)
89 branch=$(expr "$msg" : "Merge remote branch
'\(.*\)'")
93 echo 2>&1 "Huh?
: $msg"
97 tip=$(git rev-parse --verify "refs
/$merge_hier$branch" 2>/dev/null) &&
98 merged=$(git name-rev --refs="refs
/$merge_hier$branch" "$other" 2>/dev/null) &&
99 merged=$(expr "$merged" : "$x40 \
(.
*\
)") &&
100 test "$merged" != undefined || {
101 other=$(git log -1 --pretty='format:%s' $other) &&
102 merged="$branch :rebased?
$other"
107 merged="$
(git rev-parse
--verify "$commit") pick
$msg"
115 echo 'case "$#,$1" in'
117 echo " exec $PROGRAM" '"$1" "$0"'
119 echo "$PROGRAM" '"$@" <<\EOF'
120 git log
--pretty=oneline
--first-parent "$1" |
123 while read commit msg
125 if other
=$
(git rev-parse
-q --verify "$commit^2")
136 series
="$merged$LF$series"
149 generate
"$0" "$@" |
diff -u "$update" -
152 echo >&2 "No changes."
154 echo >&2 -n "Update [Y/n]? "
159 sed -e 's/ :rebased?.*//' >"$update" ;;
161 echo >&2 "No update then." ;;
165 generate
"$0" "$@" |
diff -u "$update" -