rebase --root: fix amending root commit messages
The code path that triggered that "BUG" really does not want to run without an explicit commit message. In the case where we want to amend a commit message, we have an *implicit* commit message, though: the one of the commit to amend. Therefore, this code path should not even be entered. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Johannes Schindelin committed
Jun 16, 2018 at 21:00 UTC
76fda6ebbc721e39ed70625206ba1dab5a9c1340
2 files changed
+2
-2
sequencer.c
+1
-1
@@ -784,7 +784,7 @@ static int run_git_commit(const char *defmsg, struct replay_opts *opts,
784
struct child_process cmd = CHILD_PROCESS_INIT;
785
const char *value;
786
787
- if (flags & CREATE_ROOT_COMMIT) {
787
+ if ((flags & CREATE_ROOT_COMMIT) && !(flags & AMEND_MSG)) {
788
struct strbuf msg = STRBUF_INIT, script = STRBUF_INIT;
789
const char *author = is_rebase_i(opts) ?
790
read_author_ident(&script) : NULL;
t/t3404-rebase-interactive.sh
+1
-1
@@ -971,7 +971,7 @@ test_expect_success 'rebase -i --root fixup root commit' '
971
test 0 = $(git cat-file commit HEAD | grep -c ^parent\ )
972
'
973
974
-test_expect_failure 'rebase -i --root reword root commit' '
974
+test_expect_success 'rebase -i --root reword root commit' '
975
test_when_finished "test_might_fail git rebase --abort" &&
976
git checkout -b reword-root-branch master &&
977
set_fake_editor &&