This config setting is pretty useful, but it unfortunately stops all non-interactive rebases with a bogus error message. This patch fixes that. Reported via a commit comment on GitHub [https://github.com/git/git/commit/969de3ff0e0#commitcomment-33257187]. Changes since v1: * Based on Junio's advice, the commit message was improved considerably. * The error message now also mentions --exec, so that users do not have to know that --exec implies the interactive backend. Johannes Schindelin (1): rebase --am: ignore rebase.reschedulefailedexec builtin/rebase.c | 10 +++++++--- t/t3418-rebase-continue.sh | 8 ++++++++ 2 files changed, 15 insertions(+), 3 deletions(-) base-commit: e11ff8975bedc0aae82632c3cb72578c3d7fc0b2 Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-253%2Fdscho%2Freschedule-failed-exec-gently-v2 Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-253/dscho/reschedule-failed-exec-gently-v2 Pull-Request: https://github.com/gitgitgadget/git/pull/253 Range-diff vs v1: 1: fab124da41 ! 1: beaeb24bc0 Let rebase.reschedulefailedexec only affect interactive rebases @@ -1,9 +1,13 @@ Author: Johannes Schindelin <johannes.schindelin@xxxxxx> - Let rebase.reschedulefailedexec only affect interactive rebases + rebase --am: ignore rebase.reschedulefailedexec - It does not make sense to stop non-interactive rebases when that config - setting is set to `true`. + The `exec` command is specific to the interactive backend, therefore it + does not make sense for non-interactive rebases to heed that config + setting. + + We still want to error out if a non-interactive rebase is started with + `--reschedule-failed-exec`, of course. Reported by Vas Sudanagunta via: https://github.com/git/git/commit/969de3ff0e0#commitcomment-33257187 @@ -35,8 +39,10 @@ } - if (options.reschedule_failed_exec && !is_interactive(&options)) +- die(_("--reschedule-failed-exec requires an interactive rebase")); + if (reschedule_failed_exec > 0 && !is_interactive(&options)) - die(_("--reschedule-failed-exec requires an interactive rebase")); ++ die(_("--reschedule-failed-exec requires " ++ "--exec or --interactive")); + if (reschedule_failed_exec >= 0) + options.reschedule_failed_exec = reschedule_failed_exec; -- gitgitgadget