Skip to content

Make rebase.reschedulefailedexec less overzealous

Johannes Schindelin via GitGitGadget git 2 versions – New

Get series with b4
b4 am [email protected]

Versions newest first · linked by author and title

  1. v2 Latest1 patch 0 repliesNew
  2. v11 patch 9 repliesSuperseded

Changes in v2 from the cover letter

* 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.

Patches in v2 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/1rebase --am: ignore rebase.reschedulefailedexecbuiltin/rebase.c t/t3418-rebase-continue.sh+15 -30 replies

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v2 yet.

Read the v2 thread

Cover letter [PATCH v2 0/1] Make rebase.reschedulefailedexec less overzealous

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 protected]>

- 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;

Signature · 1 line
gitgitgadget