11#! /bin/sh
22
3- merge_msg=" Merge branch '\(.*\)'"
4- x40=' [0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]'
5- x40=" $x40$x40$x40$x40$x40$x40$x40$x40 "
6- LF='
7- '
8-
9- echo ' #!/bin/sh
10- accept_rerere=t
11- while case "$#,$1" in 0,*) break;; *,-*) ;; *) break ;; esac
3+ accept_rerere=t generate=no
4+ while case " $# ,$1 " in 0,* ) break ;; * ,-* ) ;; esac
125do
136 case " $1 " in
147 -n) accept_rerere= ;;
15- *) echo "$0 [-n]"; exit 1 ;;
8+ * ) generate=yes
9+ break ;;
1610 esac
1711 shift
1812done
1913
20- accept_rerere () {
21- if test -z "$accept_rerere"
22- then
23- return 1
24- fi
25- if git diff |
26- grep -e "^.+" -e "^+." |
27- grep -e "^..<<<<<<<" -e "^..=======" -e "^..>>>>>>>" >/dev/null
28- then
29- return 1
30- else
31- EDITOR=: git commit -a --no-verify
32- return 0
33- fi
34- }
35-
36- while read branch eh
37- do
38- case "$eh" in
39- "")
40- echo >&2 "* $branch"
41- git merge "$branch" || accept_rerere || exit
42- if git show-ref -q --verify "refs/merge-fix/$branch"
14+ case " $generate " in
15+ no)
16+ accept_rerere () {
17+ if test -z " $accept_rerere "
4318 then
44- git cherry-pick --no-commit "refs/merge-fix/$branch" &&
45- EDITOR=: git commit --amend -a
19+ return 1
4620 fi
47- ;;
48- pick" "*)
49- echo >&2 "* $eh"
50- git cherry-pick "$branch" || exit ;;
51- *) echo >&2 "Eh? $branch $eh"; exit ;;
52- esac
53- done <<EOF'
21+ if git diff |
22+ grep -e " ^.+" -e " ^+." |
23+ grep -e " ^..<<<<<<<" -e " ^..=======" -e " ^..>>>>>>>" > /dev/null
24+ then
25+ return 1
26+ else
27+ EDITOR=: git commit -a --no-verify
28+ return 0
29+ fi
30+ }
31+
32+ while read branch eh
33+ do
34+ case " $eh " in
35+ " " )
36+ echo >&2 " * $branch "
37+ git merge " $branch " || accept_rerere || exit
38+ if git show-ref -q --verify " refs/merge-fix/$branch "
39+ then
40+ git cherry-pick --no-commit " refs/merge-fix/$branch " &&
41+ EDITOR=: git commit --amend -a
42+ fi
43+ ;;
44+ pick" " * )
45+ echo >&2 " * $eh "
46+ git cherry-pick " $branch " || exit ;;
47+ * ) echo >&2 " Eh? $branch $eh " ; exit ;;
48+ esac
49+ done
50+ exit
51+ esac
52+
53+ merge_msg=" Merge branch '\(.*\)'"
54+ x40=' [0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]'
55+ x40=" $x40$x40$x40$x40$x40$x40$x40$x40 "
56+ LF='
57+ '
5458
5559show_merge () {
5660 branch=$( expr " $msg " : " $merge_msg " ) &&
@@ -67,6 +71,9 @@ show_pick () {
6771 merged=" $( git rev-parse --verify " $commit " ) pick $msg "
6872}
6973
74+ echo ' #!/bin/sh'
75+ echo " $0 <<\\ EOF"
76+
7077git log --pretty=oneline --first-parent " $1 " |
7178{
7279 series=
@@ -89,4 +96,4 @@ git log --pretty=oneline --first-parent "$1" |
8996 echo " $series "
9097}
9198
92- echo ' EOF'
99+ echo EOF
0 commit comments