diff options
author | Gregory Herrero <gregory.herrero@oracle.com> | 2018-02-08 21:42:41 +0100 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2018-02-08 23:31:57 +0100 |
commit | ed5144d7eb63a0e0e71d3b281e69e953abbf0365 (patch) | |
tree | 1e0a2a0ea47dd4183d824fb3dd8316e7d3f2b522 /t/t3408-rebase-multi-line.sh | |
parent | rebase -p: fix quoting when calling `git merge` (diff) | |
download | git-ed5144d7eb63a0e0e71d3b281e69e953abbf0365.tar.xz git-ed5144d7eb63a0e0e71d3b281e69e953abbf0365.zip |
rebase -p: fix incorrect commit message when calling `git merge`.
Since commit dd6fb0053 ("rebase -p: fix quoting when calling `git
merge`"), commit message of the merge commit being rebased is passed to
the merge command using a subshell executing 'git rev-parse --sq-quote'.
Double quotes are needed around this subshell so that, newlines are
kept for the git merge command.
Before this patch, following merge message:
"Merge mybranch into mynewbranch
Awesome commit."
becomes:
"Merge mybranch into mynewbranch Awesome commit."
after a rebase -p.
Fixes: "dd6fb0053 rebase -p: fix quoting when calling `git merge`"
Reported-by: Jamie Iles <jamie.iles@oracle.com>
Suggested-by: Vegard Nossum <vegard.nossum@oracle.com>
Suggested-by: Quentin Casasnovas <quentin.casasnovas@oracle.com>
Signed-off-by: Gregory Herrero <gregory.herrero@oracle.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 't/t3408-rebase-multi-line.sh')
-rwxr-xr-x | t/t3408-rebase-multi-line.sh | 26 |
1 files changed, 25 insertions, 1 deletions
diff --git a/t/t3408-rebase-multi-line.sh b/t/t3408-rebase-multi-line.sh index 6b84e6042a..e7292f5b9b 100755 --- a/t/t3408-rebase-multi-line.sh +++ b/t/t3408-rebase-multi-line.sh @@ -24,8 +24,23 @@ But otherwise with a sane description." && >elif && git add elif && test_tick && - git commit -m second + git commit -m second && + git checkout -b side2 && + >afile && + git add afile && + test_tick && + git commit -m third && + echo hello >afile && + test_tick && + git commit -a -m fourth && + git checkout -b side-merge && + git reset --hard HEAD^^ && + git merge --no-ff -m "A merge commit log message that has a long +summary that spills over multiple lines. + +But otherwise with a sane description." side2 && + git branch side-merge-original ' test_expect_success rebase ' @@ -37,5 +52,14 @@ test_expect_success rebase ' test_cmp expect actual ' +test_expect_success rebasep ' + + git checkout side-merge && + git rebase -p side && + git cat-file commit HEAD | sed -e "1,/^\$/d" >actual && + git cat-file commit side-merge-original | sed -e "1,/^\$/d" >expect && + test_cmp expect actual + +' test_done |