Skip to content

Commit

Permalink
Merge branch 'jc/rebase-i-commit-msg-fix'
Browse files Browse the repository at this point in the history
* jc/rebase-i-commit-msg-fix:
  rebase-i: do not get fooled by a log message ending with backslash
  rebase-i: style fix
  • Loading branch information
Junio C Hamano committed Jul 15, 2010
2 parents 8498657 + 57f2b6b commit 754e66b
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 9 deletions.
19 changes: 10 additions & 9 deletions git-rebase--interactive.sh
Original file line number Diff line number Diff line change
Expand Up @@ -263,10 +263,10 @@ pick_one_preserving_merges () {
then
if test "$fast_forward" = t
then
cat "$DOTEST"/current-commit | while read current_commit
while read current_commit
do
git rev-parse HEAD > "$REWRITTEN"/$current_commit
done
done <"$DOTEST"/current-commit
rm "$DOTEST"/current-commit ||
die "Cannot write current commit's replacement sha1"
fi
Expand Down Expand Up @@ -440,17 +440,17 @@ record_in_rewritten() {
echo "$oldsha1" >> "$REWRITTEN_PENDING"

case "$(peek_next_command)" in
squash|s|fixup|f)
squash|s|fixup|f)
;;
*)
*)
flush_rewritten_pending
;;
esac
}

do_next () {
rm -f "$MSG" "$AUTHOR_SCRIPT" "$AMEND" || exit
read command sha1 rest < "$TODO"
read -r command sha1 rest < "$TODO"
case "$command" in
'#'*|''|noop)
mark_action_done
Expand Down Expand Up @@ -591,7 +591,7 @@ do_rest () {
# skip picking commits whose parents are unchanged
skip_unnecessary_picks () {
fd=3
while read command sha1 rest
while read -r command sha1 rest
do
# fd=3 means we skip the command
case "$fd,$command,$(git rev-parse --verify --quiet $sha1^)" in
Expand Down Expand Up @@ -644,13 +644,13 @@ rearrange_squash () {
test -s "$1.sq" || return

used=
while read pick sha1 message
while read -r pick sha1 message
do
case " $used" in
*" $sha1 "*) continue ;;
esac
echo "$pick $sha1 $message"
while read squash action msg
while read -r squash action msg
do
case "$message" in
"$msg"*)
Expand Down Expand Up @@ -890,7 +890,8 @@ first and then run 'git rebase --continue' again."
git rev-list $MERGES_OPTION --pretty=oneline --abbrev-commit \
--abbrev=7 --reverse --left-right --topo-order \
$REVISIONS | \
sed -n "s/^>//p" | while read shortsha1 rest
sed -n "s/^>//p" |
while read -r shortsha1 rest
do
if test t != "$PRESERVE_MERGES"
then
Expand Down
18 changes: 18 additions & 0 deletions t/t3404-rebase-interactive.sh
Original file line number Diff line number Diff line change
Expand Up @@ -630,4 +630,22 @@ test_expect_success 'always cherry-pick with --no-ff' '
test_cmp empty out
'

test_expect_success 'set up commits with funny messages' '
git checkout -b funny A &&
echo >>file1 &&
test_tick &&
git commit -a -m "end with slash\\" &&
echo >>file1 &&
test_tick &&
git commit -a -m "another commit"
'

test_expect_success 'rebase-i history with funny messages' '
git rev-list A..funny >expect &&
test_tick &&
FAKE_LINES="1 2" git rebase -i A &&
git rev-list A.. >actual &&
test_cmp expect actual
'

test_done

0 comments on commit 754e66b

Please sign in to comment.