mirror of
https://github.com/git/git
synced 2024-08-26 19:19:18 +00:00
Merge branch 'en/sequencer-empty-edit-result-aborts'
"git rebase" etc. in Git 2.19 fails to abort when given an empty commit log message as result of editing, which has been corrected. * en/sequencer-empty-edit-result-aborts: sequencer: fix --allow-empty-message behavior, make it smarter
This commit is contained in:
commit
4af130af0c
|
@ -903,7 +903,7 @@ static int run_git_commit(const char *defmsg, struct replay_opts *opts,
|
||||||
if ((flags & ALLOW_EMPTY))
|
if ((flags & ALLOW_EMPTY))
|
||||||
argv_array_push(&cmd.args, "--allow-empty");
|
argv_array_push(&cmd.args, "--allow-empty");
|
||||||
|
|
||||||
if (opts->allow_empty_message)
|
if (!(flags & EDIT_MSG))
|
||||||
argv_array_push(&cmd.args, "--allow-empty-message");
|
argv_array_push(&cmd.args, "--allow-empty-message");
|
||||||
|
|
||||||
if (cmd.err == -1) {
|
if (cmd.err == -1) {
|
||||||
|
@ -1317,7 +1317,7 @@ static int try_to_commit(struct strbuf *msg, const char *author,
|
||||||
|
|
||||||
if (cleanup != COMMIT_MSG_CLEANUP_NONE)
|
if (cleanup != COMMIT_MSG_CLEANUP_NONE)
|
||||||
strbuf_stripspace(msg, cleanup == COMMIT_MSG_CLEANUP_ALL);
|
strbuf_stripspace(msg, cleanup == COMMIT_MSG_CLEANUP_ALL);
|
||||||
if (!opts->allow_empty_message && message_is_empty(msg, cleanup)) {
|
if ((flags & EDIT_MSG) && message_is_empty(msg, cleanup)) {
|
||||||
res = 1; /* run 'git commit' to display error message */
|
res = 1; /* run 'git commit' to display error message */
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
|
@ -569,16 +569,15 @@ test_expect_success '--continue tries to commit, even for "edit"' '
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success 'aborted --continue does not squash commits after "edit"' '
|
test_expect_success 'aborted --continue does not squash commits after "edit"' '
|
||||||
test_when_finished "git rebase --abort" &&
|
|
||||||
old=$(git rev-parse HEAD) &&
|
old=$(git rev-parse HEAD) &&
|
||||||
test_tick &&
|
test_tick &&
|
||||||
set_fake_editor &&
|
set_fake_editor &&
|
||||||
FAKE_LINES="edit 1" git rebase -i HEAD^ &&
|
FAKE_LINES="edit 1" git rebase -i HEAD^ &&
|
||||||
echo "edited again" > file7 &&
|
echo "edited again" > file7 &&
|
||||||
git add file7 &&
|
git add file7 &&
|
||||||
echo all the things >>conflict &&
|
test_must_fail env FAKE_COMMIT_MESSAGE=" " git rebase --continue &&
|
||||||
test_must_fail git rebase --continue &&
|
test $old = $(git rev-parse HEAD) &&
|
||||||
test $old = $(git rev-parse HEAD)
|
git rebase --abort
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success 'auto-amend only edited commits after "edit"' '
|
test_expect_success 'auto-amend only edited commits after "edit"' '
|
||||||
|
|
|
@ -83,7 +83,7 @@ test_expect_success 'rebase -m commit with empty message' '
|
||||||
test_expect_success 'rebase -i commit with empty message' '
|
test_expect_success 'rebase -i commit with empty message' '
|
||||||
git checkout diff-in-message &&
|
git checkout diff-in-message &&
|
||||||
set_fake_editor &&
|
set_fake_editor &&
|
||||||
env FAKE_COMMIT_MESSAGE=" " FAKE_LINES="reword 1" \
|
test_must_fail env FAKE_COMMIT_MESSAGE=" " FAKE_LINES="reword 1" \
|
||||||
git rebase -i HEAD^
|
git rebase -i HEAD^
|
||||||
'
|
'
|
||||||
|
|
||||||
|
|
|
@ -11,17 +11,14 @@ test_expect_success setup '
|
||||||
test_tick &&
|
test_tick &&
|
||||||
git commit -m "first" &&
|
git commit -m "first" &&
|
||||||
|
|
||||||
git checkout -b empty-branch &&
|
git checkout -b empty-message-branch &&
|
||||||
test_tick &&
|
|
||||||
git commit --allow-empty -m "empty" &&
|
|
||||||
|
|
||||||
echo third >> file1 &&
|
echo third >> file1 &&
|
||||||
git add file1 &&
|
git add file1 &&
|
||||||
test_tick &&
|
test_tick &&
|
||||||
git commit --allow-empty-message -m "" &&
|
git commit --allow-empty-message -m "" &&
|
||||||
|
|
||||||
git checkout master &&
|
git checkout master &&
|
||||||
git checkout -b empty-branch2 &&
|
git checkout -b empty-change-branch &&
|
||||||
test_tick &&
|
test_tick &&
|
||||||
git commit --allow-empty -m "empty"
|
git commit --allow-empty -m "empty"
|
||||||
|
|
||||||
|
@ -29,7 +26,7 @@ test_expect_success setup '
|
||||||
|
|
||||||
test_expect_success 'cherry-pick an empty commit' '
|
test_expect_success 'cherry-pick an empty commit' '
|
||||||
git checkout master &&
|
git checkout master &&
|
||||||
test_expect_code 1 git cherry-pick empty-branch^
|
test_expect_code 1 git cherry-pick empty-change-branch
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success 'index lockfile was removed' '
|
test_expect_success 'index lockfile was removed' '
|
||||||
|
@ -37,8 +34,9 @@ test_expect_success 'index lockfile was removed' '
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success 'cherry-pick a commit with an empty message' '
|
test_expect_success 'cherry-pick a commit with an empty message' '
|
||||||
|
test_when_finished "git reset --hard empty-message-branch~1" &&
|
||||||
git checkout master &&
|
git checkout master &&
|
||||||
test_expect_code 1 git cherry-pick empty-branch
|
git cherry-pick empty-message-branch
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success 'index lockfile was removed' '
|
test_expect_success 'index lockfile was removed' '
|
||||||
|
@ -47,7 +45,7 @@ test_expect_success 'index lockfile was removed' '
|
||||||
|
|
||||||
test_expect_success 'cherry-pick a commit with an empty message with --allow-empty-message' '
|
test_expect_success 'cherry-pick a commit with an empty message with --allow-empty-message' '
|
||||||
git checkout -f master &&
|
git checkout -f master &&
|
||||||
git cherry-pick --allow-empty-message empty-branch
|
git cherry-pick --allow-empty-message empty-message-branch
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success 'cherry pick an empty non-ff commit without --allow-empty' '
|
test_expect_success 'cherry pick an empty non-ff commit without --allow-empty' '
|
||||||
|
@ -55,12 +53,12 @@ test_expect_success 'cherry pick an empty non-ff commit without --allow-empty' '
|
||||||
echo fourth >>file2 &&
|
echo fourth >>file2 &&
|
||||||
git add file2 &&
|
git add file2 &&
|
||||||
git commit -m "fourth" &&
|
git commit -m "fourth" &&
|
||||||
test_must_fail git cherry-pick empty-branch2
|
test_must_fail git cherry-pick empty-change-branch
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success 'cherry pick an empty non-ff commit with --allow-empty' '
|
test_expect_success 'cherry pick an empty non-ff commit with --allow-empty' '
|
||||||
git checkout master &&
|
git checkout master &&
|
||||||
git cherry-pick --allow-empty empty-branch2
|
git cherry-pick --allow-empty empty-change-branch
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success 'cherry pick with --keep-redundant-commits' '
|
test_expect_success 'cherry pick with --keep-redundant-commits' '
|
||||||
|
|
Loading…
Reference in a new issue