Subject: [PATCH v2 0/1] Make rebase.reschedulefailedexec less overzealous

From: "Johannes Schindelin via GitGitGadget" <[email-masked]>
Date: Mon, 01 Jul 2019 04:58:14 -0700 (PDT)

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 <[email-masked]>
      
     -    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