From: Phillip Wood <phillip.wood@xxxxxxxxxxxxx> Remember --allow-empty, --allow-empty-message and --keep-redundant-commits when cherry-pick stops for a conflict resolution. Signed-off-by: Phillip Wood <phillip.wood@xxxxxxxxxxxxx> --- sequencer.c | 18 ++++++++++++++++++ t/t3507-cherry-pick-conflict.sh | 4 ++-- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/sequencer.c b/sequencer.c index 5e19b22f8f..1ad51aa498 100644 --- a/sequencer.c +++ b/sequencer.c @@ -2307,6 +2307,15 @@ static int populate_opts_cb(const char *key, const char *value, void *data) opts->no_commit = git_config_bool_or_int(key, value, &error_flag); else if (!strcmp(key, "options.edit")) opts->edit = git_config_bool_or_int(key, value, &error_flag); + else if (!strcmp(key, "options.allow-empty")) + opts->allow_empty = + git_config_bool_or_int(key, value, &error_flag); + else if (!strcmp(key, "options.allow-empty-message")) + opts->allow_empty_message = + git_config_bool_or_int(key, value, &error_flag); + else if (!strcmp(key, "options.keep-redundant-commits")) + opts->keep_redundant_commits = + git_config_bool_or_int(key, value, &error_flag); else if (!strcmp(key, "options.signoff")) opts->signoff = git_config_bool_or_int(key, value, &error_flag); else if (!strcmp(key, "options.record-origin")) @@ -2705,6 +2714,15 @@ static int save_opts(struct replay_opts *opts) if (opts->edit) res |= git_config_set_in_file_gently(opts_file, "options.edit", "true"); + if (opts->allow_empty) + res |= git_config_set_in_file_gently(opts_file, + "options.allow-empty", "true"); + if (opts->allow_empty_message) + res |= git_config_set_in_file_gently(opts_file, + "options.allow-empty-message", "true"); + if (opts->keep_redundant_commits) + res |= git_config_set_in_file_gently(opts_file, + "options.keep-redundant-commits", "true"); if (opts->signoff) res |= git_config_set_in_file_gently(opts_file, "options.signoff", "true"); diff --git a/t/t3507-cherry-pick-conflict.sh b/t/t3507-cherry-pick-conflict.sh index 79e994cffa..1ef8e9d534 100755 --- a/t/t3507-cherry-pick-conflict.sh +++ b/t/t3507-cherry-pick-conflict.sh @@ -410,7 +410,7 @@ test_expect_success 'cherry-pick preserves sparse-checkout' ' test_i18ngrep ! "Changes not staged for commit:" actual ' -test_expect_failure 'cherry-pick --continue remembers --keep-redundant-commits' ' +test_expect_success 'cherry-pick --continue remembers --keep-redundant-commits' ' test_when_finished "git cherry-pick --abort || :" && pristine_detach initial && test_must_fail git cherry-pick --keep-redundant-commits picked redundant && @@ -419,7 +419,7 @@ test_expect_failure 'cherry-pick --continue remembers --keep-redundant-commits' git cherry-pick --continue ' -test_expect_failure 'cherry-pick --continue remembers --allow-empty and --allow-empty-message' ' +test_expect_success 'cherry-pick --continue remembers --allow-empty and --allow-empty-message' ' test_when_finished "git cherry-pick --abort || :" && pristine_detach initial && test_must_fail git cherry-pick --allow-empty --allow-empty-message \ -- 2.21.0