diff --git a/git-rebase.sh b/git-rebase.sh index cbafa14ed5..9cf005677c 100755 --- a/git-rebase.sh +++ b/git-rebase.sh @@ -59,20 +59,23 @@ continue_merge () { die "$RESOLVEMSG" fi + cmt=`cat $dotest/current` if ! git diff-index --quiet HEAD then - if ! git-commit -C "`cat $dotest/current`" + if ! git-commit -C "$cmt" then echo "Commit failed, please do not call \"git commit\"" echo "directly, but instead do one of the following: " die "$RESOLVEMSG" fi - printf "Committed: %0${prec}d" $msgnum + printf "Committed: %0${prec}d " $msgnum + git rev-list --pretty=oneline -1 HEAD | \ + sed 's/^[a-f0-9]\+ //' else - printf "Already applied: %0${prec}d" $msgnum + printf "Already applied: %0${prec}d " $msgnum + git rev-list --pretty=oneline -1 "$cmt" | \ + sed 's/^[a-f0-9]\+ //' 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 diff --git a/t/t3406-rebase-message.sh b/t/t3406-rebase-message.sh new file mode 100755 index 0000000000..332b2b2feb --- /dev/null +++ b/t/t3406-rebase-message.sh @@ -0,0 +1,44 @@ +#!/bin/sh + +test_description='messages from rebase operation' + +. ./test-lib.sh + +quick_one () { + echo "$1" >"file$1" && + git add "file$1" && + test_tick && + git commit -m "$1" +} + +test_expect_success setup ' + quick_one O && + git branch topic && + quick_one X && + quick_one A && + quick_one B && + quick_one Y && + + git checkout topic && + quick_one A && + quick_one B && + quick_one Z + +' + +cat >expect <<\EOF +Already applied: 0001 A +Already applied: 0002 B +Committed: 0003 Z +EOF + +test_expect_success 'rebase -m' ' + + git rebase -m master >report && + sed -n -e "/^Already applied: /p" \ + -e "/^Committed: /p" report >actual && + diff -u expect actual + +' + +test_done