summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: aecbf91)
raw | patch | inline | side by side (parent: aecbf91)
author | Johannes Sixt <johannes.sixt@telecom.at> | |
Sat, 1 Sep 2007 07:25:27 +0000 (09:25 +0200) | ||
committer | Junio C Hamano <gitster@pobox.com> | |
Sat, 1 Sep 2007 09:23:05 +0000 (02:23 -0700) |
When a topic branch is rebased, some of whose commits are already
cherry-picked upstream:
o--X--A--B--Y <- master
\
A--B--Z <- topic
then 'git rebase -m master' would report:
Already applied: 0001 Y
Already applied: 0002 Y
With this fix it reports the expected:
Already applied: 0001 A
Already applied: 0002 B
As an added bonus, this change also avoids 'echo' of a commit message,
which might contain escapements.
Signed-off-by: Johannes Sixt <johannes.sixt@telecom.at>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
cherry-picked upstream:
o--X--A--B--Y <- master
\
A--B--Z <- topic
then 'git rebase -m master' would report:
Already applied: 0001 Y
Already applied: 0002 Y
With this fix it reports the expected:
Already applied: 0001 A
Already applied: 0002 B
As an added bonus, this change also avoids 'echo' of a commit message,
which might contain escapements.
Signed-off-by: Johannes Sixt <johannes.sixt@telecom.at>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
git-rebase.sh | patch | blob | history | |
t/t3406-rebase-message.sh | [new file with mode: 0755] | patch | blob |
diff --git a/git-rebase.sh b/git-rebase.sh
index cbafa14ed524212441ba76e1bdb558585795e2f3..9cf005677c2936a7c2f14a00cc4e91670e2259f3 100755 (executable)
--- a/git-rebase.sh
+++ b/git-rebase.sh
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
--- /dev/null
@@ -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