Reintegrate: move sequencer code out of the output

Junio C Hamano committed Nov 25, 2009 at 16:50 UTC 78917f58fa8ad254d47f4134b9bfaad7903a5123
1 file changed +50 -43
Reintegrate
+50 -43
@@ -1,56 +1,60 @@
1 #!/bin/sh
2
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
5 do
6 case "$1" in
7 -n) accept_rerere= ;;
15 - *) echo "$0 [-n]"; exit 1 ;;
8 + *) generate=yes
9 + break ;;
10 esac
11 shift
12 done
13
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"
18 then
44 - git cherry-pick --no-commit "refs/merge-fix/$branch" &&
45 - EDITOR=: git commit --amend -a
19 + return 1
20 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 +'
58
59 show_merge () {
60 branch=$(expr "$msg" : "$merge_msg") &&
@@ -67,6 +71,9 @@ show_pick () {
71 merged="$(git rev-parse --verify "$commit") pick $msg"
72 }
73
74 +echo '#!/bin/sh'
75 +echo "$0 <<\\EOF"
76 +
77 git log --pretty=oneline --first-parent "$1" |
78 {
79 series=
@@ -89,4 +96,4 @@ git log --pretty=oneline --first-parent "$1" |
96 echo "$series"
97 }
98
92 -echo 'EOF'
99 +echo EOF