Skip to content

Commit

Permalink
rebase: cleanup rebasing with --merge
Browse files Browse the repository at this point in the history
We no longer have to recommit each patch to remove the parent
information we're rebasing since we're using the low-level merge
strategies directly instead of git-merge.

Signed-off-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>
  • Loading branch information
Eric Wong authored and Junio C Hamano committed Jun 25, 2006
1 parent 9a99c08 commit 9e4bc7d
Showing 1 changed file with 5 additions and 28 deletions.
33 changes: 5 additions & 28 deletions git-rebase.sh
Original file line number Diff line number Diff line change
Expand Up @@ -59,15 +59,16 @@ continue_merge () {

if test -n "`git-diff-index HEAD`"
then
printf "Committed: %0${prec}d" $msgnum
git-commit -C "`cat $dotest/current`"
else
echo "Previous merge succeeded automatically"
printf "Already applied: %0${prec}d" $msgnum
fi
echo ' '`git-rev-list --pretty=oneline -1 HEAD | \
sed 's/^[a-f0-9]\+ //'`

prev_head=`git-rev-parse HEAD^0`

# save the resulting commit so we can read-tree on it later
echo "$prev_head" > "$dotest/cmt.$msgnum.result"
echo "$prev_head" > "$dotest/prev_head"

# onto the next patch:
Expand All @@ -82,10 +83,7 @@ call_merge () {
rv=$?
case "$rv" in
0)
if test -n "`git-diff-index HEAD`"
then
git-commit -C "$cmt" || die "commit failed: $MRESOLVEMSG"
fi
return
;;
1)
test -d "$GIT_DIR/rr-cache" && git-rerere
Expand All @@ -103,27 +101,6 @@ call_merge () {
}

finish_rb_merge () {
set -e

msgnum=1
echo "Finalizing rebased commits..."
git-reset --hard "`cat $dotest/onto`"
end="`cat $dotest/end`"
while test "$msgnum" -le "$end"
do
git-read-tree `cat "$dotest/cmt.$msgnum.result"`
git-checkout-index -q -f -u -a
if test -n "`git-diff-index HEAD`"
then
git-commit -C "`cat $dotest/cmt.$msgnum`"
printf "Committed %0${prec}d" $msgnum
else
printf "Already applied: %0${prec}d" $msgnum
fi
echo ' '`git-rev-list --pretty=oneline -1 HEAD | \
sed 's/^[a-f0-9]\+ //'`
msgnum=$(($msgnum + 1))
done
rm -r "$dotest"
echo "All done."
}
Expand Down

0 comments on commit 9e4bc7d

Please sign in to comment.