diff mbox series

[1/1] Revert "rebase: introduce a shortcut for --reschedule-failed-exec"

Message ID e61ebc30605e21ce71623903bc9c850fd964e826.1549367342.git.gitgitgadget@gmail.com (mailing list archive)
State New, archived
Headers show
Series rebase: drop the unwanted -y | expand

Commit Message

Linus Arver via GitGitGadget Feb. 5, 2019, 11:49 a.m. UTC
From: Johannes Schindelin <johannes.schindelin@gmx.de>

When contributing the patch series, the cover letter tried to convey
clearly that the patch introducing the shortcut -y was included only to
show that it is possible, with a slight bias against it.

During the review, there were a couple reviewers who agreed with this
sentiment, and the author was happy that this patch was not needed and
concurred that it should be dropped. See e.g. Stefan Beller's reply:
<CAGZ79kZL5CRqCDRb6B-EedUm8Z_i4JuSF2=UtwwdRXMitrrOBw@mail.gmail.com>

However, it slipped by the original patch author (yours truly) that the
patch *was* included when the branch made it to `next` and then when it
made it to `master`.

So let's back out that patch before it even slips into an official
release (in which case we would even have to support this unwanted
flag).

This reverts commit 81ef8ee75d5f348d3c71ff633d13d302124e1a5e.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
---
 Documentation/git-rebase.txt |  6 ------
 builtin/rebase.c             | 21 ---------------------
 git-legacy-rebase.sh         |  6 ------
 t/t3418-rebase-continue.sh   |  3 ---
 4 files changed, 36 deletions(-)

Comments

Junio C Hamano Feb. 5, 2019, 5:41 p.m. UTC | #1
"Johannes Schindelin via GitGitGadget" <gitgitgadget@gmail.com>
writes:

> From: Johannes Schindelin <johannes.schindelin@gmx.de>
>
> When contributing the patch series, the cover letter tried to convey
> clearly that the patch introducing the shortcut -y was included only to
> show that it is possible, with a slight bias against it.
>
> During the review, there were a couple reviewers who agreed with this
> sentiment, and the author was happy that this patch was not needed and
> concurred that it should be dropped. See e.g. Stefan Beller's reply:
> <CAGZ79kZL5CRqCDRb6B-EedUm8Z_i4JuSF2=UtwwdRXMitrrOBw@mail.gmail.com>
>
> However, it slipped by the original patch author (yours truly) that the
> patch *was* included when the branch made it to `next` and then when it
> made it to `master`.
>
> So let's back out that patch before it even slips into an official
> release (in which case we would even have to support this unwanted
> flag).
>
> This reverts commit 81ef8ee75d5f348d3c71ff633d13d302124e1a5e.
>
> Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
> ---

Thanks for catching before feature freeze, but read the above again
with cooler head.  The revert message is less useful than if you
said 

    The patch was sent for completeness just in case it turns out to
    be too cumbersome not to have a short-hand option, but during
    the discussion, reviewers agreed that [FOR SUCH AND SUCH REASONS
    --- fill in the blank here] we are better off without.  The
    maintainer missed that conclusion and forgot to drop it while
    merging the topic down, and contributors did not notice the
    mistake, either.

As the reason is missing, the only thing a reader can get from it is
"the patch was not intended to be included, but we screwed up".  I
do not see why a more useful "why it wasn't intended to be included"
needs to be hidden behind an external reference.
diff mbox series

Patch

diff --git a/Documentation/git-rebase.txt b/Documentation/git-rebase.txt
index 4dd5853d6e..44ffe2c8c5 100644
--- a/Documentation/git-rebase.txt
+++ b/Documentation/git-rebase.txt
@@ -462,12 +462,6 @@  without an explicit `--interactive`.
 +
 See also INCOMPATIBLE OPTIONS below.
 
--y <cmd>::
-	This is the same as passing `--reschedule-failed-exec` before
-	`-x <cmd>`, i.e. it appends the specified `exec` command and
-	turns on the mode where failed `exec` commands are automatically
-	rescheduled.
-
 --root::
 	Rebase all commits reachable from <branch>, instead of
 	limiting them with an <upstream>.  This allows you to rebase
diff --git a/builtin/rebase.c b/builtin/rebase.c
index 774264bae8..7c77a80687 100644
--- a/builtin/rebase.c
+++ b/builtin/rebase.c
@@ -760,23 +760,6 @@  static int parse_opt_interactive(const struct option *opt, const char *arg,
 	return 0;
 }
 
-struct opt_y {
-	struct string_list *list;
-	struct rebase_options *options;
-};
-
-static int parse_opt_y(const struct option *opt, const char *arg, int unset)
-{
-	struct opt_y *o = opt->value;
-
-	if (unset || !arg)
-		return -1;
-
-	o->options->reschedule_failed_exec = 1;
-	string_list_append(o->list, arg);
-	return 0;
-}
-
 static void NORETURN error_on_missing_default_upstream(void)
 {
 	struct branch *current_branch = branch_get(NULL);
@@ -857,7 +840,6 @@  int cmd_rebase(int argc, const char **argv, const char *prefix)
 	struct string_list strategy_options = STRING_LIST_INIT_NODUP;
 	struct object_id squash_onto;
 	char *squash_onto_name = NULL;
-	struct opt_y opt_y = { .list = &exec, .options = &options };
 	struct option builtin_rebase_options[] = {
 		OPT_STRING(0, "onto", &options.onto_name,
 			   N_("revision"),
@@ -935,9 +917,6 @@  int cmd_rebase(int argc, const char **argv, const char *prefix)
 		OPT_STRING_LIST('x', "exec", &exec, N_("exec"),
 				N_("add exec lines after each commit of the "
 				   "editable list")),
-		{ OPTION_CALLBACK, 'y', NULL, &opt_y, N_("<cmd>"),
-			N_("same as --reschedule-failed-exec -x <cmd>"),
-			PARSE_OPT_NONEG, parse_opt_y },
 		OPT_BOOL(0, "allow-empty-message",
 			 &options.allow_empty_message,
 			 N_("allow rebasing commits with empty messages")),
diff --git a/git-legacy-rebase.sh b/git-legacy-rebase.sh
index 3bb0682db5..37db5a7ca4 100755
--- a/git-legacy-rebase.sh
+++ b/git-legacy-rebase.sh
@@ -26,7 +26,6 @@  f,force-rebase!    cherry-pick all commits, even if unchanged
 m,merge!           use merging strategies to rebase
 i,interactive!     let the user edit the list of commits to rebase
 x,exec=!           add exec lines after each commit of the editable list
-y=!                same as --reschedule-failed-exec -x
 k,keep-empty	   preserve empty commits during rebase
 allow-empty-message allow rebasing commits with empty messages
 stat!              display a diffstat of what changed upstream
@@ -263,11 +262,6 @@  do
 		cmd="${cmd}exec ${1#--exec=}${LF}"
 		test -z "$interactive_rebase" && interactive_rebase=implied
 		;;
-	-y*)
-		reschedule_failed_exec=--reschedule-failed-exec
-		cmd="${cmd}exec ${1#-y}${LF}"
-		test -z "$interactive_rebase" && interactive_rebase=implied
-		;;
 	--interactive)
 		interactive_rebase=explicit
 		;;
diff --git a/t/t3418-rebase-continue.sh b/t/t3418-rebase-continue.sh
index 25aaacacfc..bdaa511bb0 100755
--- a/t/t3418-rebase-continue.sh
+++ b/t/t3418-rebase-continue.sh
@@ -262,9 +262,6 @@  test_expect_success '--reschedule-failed-exec' '
 	test_must_fail git -c rebase.rescheduleFailedExec=true \
 		rebase -x false HEAD^ 2>err &&
 	grep "^exec false" .git/rebase-merge/git-rebase-todo &&
-	test_i18ngrep "has been rescheduled" err &&
-	git rebase --abort &&
-	test_must_fail git rebase -y false HEAD^ 2>err &&
 	test_i18ngrep "has been rescheduled" err
 '