diff options
author | Junio C Hamano <gitster@pobox.com> | 2018-06-18 11:23:22 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2018-06-18 11:23:22 -0700 |
commit | f300f5681e88fdf1058139100cbb8f990f5029c5 (patch) | |
tree | bb7801bfa5b0e2b629ba9e3607c1f9049e74091a | |
parent | Merge branch 'jk/ewah-bounds-check' (diff) | |
parent | rebase --root: fix amending root commit messages (diff) | |
download | tgif-f300f5681e88fdf1058139100cbb8f990f5029c5.tar.xz |
Merge branch 'js/rebase-i-root-fix'
A regression to "rebase -i --root" introduced during this cycle has
been fixed.
* js/rebase-i-root-fix:
rebase --root: fix amending root commit messages
rebase --root: demonstrate a bug while amending root commit messages
-rw-r--r-- | sequencer.c | 2 | ||||
-rwxr-xr-x | t/t3404-rebase-interactive.sh | 9 |
2 files changed, 10 insertions, 1 deletions
diff --git a/sequencer.c b/sequencer.c index cca968043e..4034c0461b 100644 --- a/sequencer.c +++ b/sequencer.c @@ -784,7 +784,7 @@ static int run_git_commit(const char *defmsg, struct replay_opts *opts, struct child_process cmd = CHILD_PROCESS_INIT; const char *value; - if (flags & CREATE_ROOT_COMMIT) { + if ((flags & CREATE_ROOT_COMMIT) && !(flags & AMEND_MSG)) { struct strbuf msg = STRBUF_INIT, script = STRBUF_INIT; const char *author = is_rebase_i(opts) ? read_author_ident(&script) : NULL; diff --git a/t/t3404-rebase-interactive.sh b/t/t3404-rebase-interactive.sh index c65826ddac..e500d7c320 100755 --- a/t/t3404-rebase-interactive.sh +++ b/t/t3404-rebase-interactive.sh @@ -971,6 +971,15 @@ test_expect_success 'rebase -i --root fixup root commit' ' test 0 = $(git cat-file commit HEAD | grep -c ^parent\ ) ' +test_expect_success 'rebase -i --root reword root commit' ' + test_when_finished "test_might_fail git rebase --abort" && + git checkout -b reword-root-branch master && + set_fake_editor && + FAKE_LINES="reword 1 2" FAKE_COMMIT_MESSAGE="A changed" \ + git rebase -i --root && + git show HEAD^ | grep "A changed" +' + test_expect_success C_LOCALE_OUTPUT 'rebase --edit-todo does not work on non-interactive rebase' ' git reset --hard && git checkout conflict-branch && |