Dothem: Allow nodoc option
[git/spearce.git] / Reintegrate
blobcb75f128fda8533a2682b8cc80270355778fa423
1 #!/bin/sh
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='
9 echo '#!/bin/sh
10 accept_rerere=t
11 while case "$#,$1" in 0,*) break;; *,-*) ;; *) break ;; esac
13 case "$1" in
14 -n) accept_rerere= ;;
15 *) echo "$0 [-n]"; exit 1 ;;
16 esac
17 shift
18 done
20 accept_rerere () {
21 if test -z "$accept_rerere"
22 then
23 return 1
25 if git diff HEAD |
26 grep -e "^+<<<<<<<" -e "^+=======" -e "^+>>>>>>>" >/dev/null
27 then
28 return 1
29 else
30 EDITOR=: git commit -a
31 return 0
35 while read branch eh
37 case "$eh" in
38 "")
39 echo >&2 "* $branch"
40 git merge "$branch" || accept_rerere || exit ;;
41 pick" "*)
42 echo >&2 "* $eh"
43 git cherry-pick "$branch" || exit ;;
44 *) echo >&2 "Eh? $branch $eh"; exit ;;
45 esac
46 done <<EOF'
48 show_merge () {
49 branch=$(expr "$msg" : "$merge_msg") &&
50 tip=$(git rev-parse --verify "refs/heads/$branch" 2>/dev/null) &&
51 merged=$(git name-rev --refs="refs/heads/$branch" "$other" 2>/dev/null) &&
52 merged=$(expr "$merged" : "$x40 \(.*\)") &&
53 test "$merged" != undefined || {
54 other=$(git log -1 --pretty='format:%s' $other) &&
55 merged="$branch :rebased? $other"
59 show_pick () {
60 merged="$(git rev-parse --verify "$commit") pick $msg"
63 git log --pretty=oneline --first-parent "$1" |
65 series=
66 while read commit msg
68 if other=$(git rev-parse -q --verify "$commit^2")
69 then
70 show_merge
71 else
72 show_pick
75 if test -z "$series"
76 then
77 series="$merged"
78 else
79 series="$merged$LF$series"
81 done
82 echo "$series"
85 echo 'EOF'