Browse Source

Reintegrate: move sequencer code out of the output

todo
Junio C Hamano 15 years ago
parent
commit
78917f58fa
  1. 93
      Reintegrate

93
Reintegrate

@ -1,56 +1,60 @@
#!/bin/sh #!/bin/sh


merge_msg="Merge branch '\(.*\)'" accept_rerere=t generate=no
x40='[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]' while case "$#,$1" in 0,*) break;; *,-*) ;; esac
x40="$x40$x40$x40$x40$x40$x40$x40$x40"
LF='
'

echo '#!/bin/sh
accept_rerere=t
while case "$#,$1" in 0,*) break;; *,-*) ;; *) break ;; esac
do do
case "$1" in case "$1" in
-n) accept_rerere= ;; -n) accept_rerere= ;;
*) echo "$0 [-n]"; exit 1 ;; *) generate=yes
break ;;
esac esac
shift shift
done done


accept_rerere () { case "$generate" in
if test -z "$accept_rerere" no)
then accept_rerere () {
return 1 if test -z "$accept_rerere"
fi
if git diff |
grep -e "^.+" -e "^+." |
grep -e "^..<<<<<<<" -e "^..=======" -e "^..>>>>>>>" >/dev/null
then
return 1
else
EDITOR=: git commit -a --no-verify
return 0
fi
}

while read branch eh
do
case "$eh" in
"")
echo >&2 "* $branch"
git merge "$branch" || accept_rerere || exit
if git show-ref -q --verify "refs/merge-fix/$branch"
then then
git cherry-pick --no-commit "refs/merge-fix/$branch" && return 1
EDITOR=: git commit --amend -a
fi fi
;; if git diff |
pick" "*) grep -e "^.+" -e "^+." |
echo >&2 "* $eh" grep -e "^..<<<<<<<" -e "^..=======" -e "^..>>>>>>>" >/dev/null
git cherry-pick "$branch" || exit ;; then
*) echo >&2 "Eh? $branch $eh"; exit ;; return 1
esac else
done <<EOF' EDITOR=: git commit -a --no-verify
return 0
fi
}

while read branch eh
do
case "$eh" in
"")
echo >&2 "* $branch"
git merge "$branch" || accept_rerere || exit
if git show-ref -q --verify "refs/merge-fix/$branch"
then
git cherry-pick --no-commit "refs/merge-fix/$branch" &&
EDITOR=: git commit --amend -a
fi
;;
pick" "*)
echo >&2 "* $eh"
git cherry-pick "$branch" || exit ;;
*) echo >&2 "Eh? $branch $eh"; exit ;;
esac
done
exit
esac

merge_msg="Merge branch '\(.*\)'"
x40='[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]'
x40="$x40$x40$x40$x40$x40$x40$x40$x40"
LF='
'


show_merge () { show_merge () {
branch=$(expr "$msg" : "$merge_msg") && branch=$(expr "$msg" : "$merge_msg") &&
@ -67,6 +71,9 @@ show_pick () {
merged="$(git rev-parse --verify "$commit") pick $msg" merged="$(git rev-parse --verify "$commit") pick $msg"
} }


echo '#!/bin/sh'
echo "$0 <<\\EOF"

git log --pretty=oneline --first-parent "$1" | git log --pretty=oneline --first-parent "$1" |
{ {
series= series=
@ -89,4 +96,4 @@ git log --pretty=oneline --first-parent "$1" |
echo "$series" echo "$series"
} }


echo 'EOF' echo EOF

Loading…
Cancel
Save