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