diff options
author | Eric Wong <normalperson@yhbt.net> | 2006-06-24 18:29:48 -0700 |
---|---|---|
committer | Junio C Hamano <junkio@cox.net> | 2006-06-25 00:38:34 -0700 |
commit | 9e4bc7dd1bb9d92491c475cec55147fa0b3f954d (patch) | |
tree | 09a0762e5cee0122892e59d7ab3cd945f2a40d75 | |
parent | 9a99c087da7cd6b4a41c19df3053542f645315c5 (diff) | |
download | git-9e4bc7dd1bb9d92491c475cec55147fa0b3f954d.tar.gz git-9e4bc7dd1bb9d92491c475cec55147fa0b3f954d.tar.xz |
rebase: cleanup rebasing with --merge
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>
-rwxr-xr-x | git-rebase.sh | 33 |
1 files changed, 5 insertions, 28 deletions
diff --git a/git-rebase.sh b/git-rebase.sh index 53fb14ed8..a95ada6b1 100755 --- a/git-rebase.sh +++ b/git-rebase.sh @@ -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: @@ -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 @@ -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." } |