git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH v2 7/7] rebase: drop the internal `rebase--interactive` command

From
Johannes Schindelin <johannes.schindelin@gmx.de>
Date
Sep 7, 2021, 12:39 UTC
Message-ID
<nycvar.QRO.7.76.6.2109071438580.55@tvgsbejvaqbjf.bet>
In-Reply-To
<cf76b707-bd59-26f8-f257-02d773294495@gmail.com>
Hi Phillip,
On Mon, 6 Sep 2021, Phillip Wood wrote:
> Hi dscho
>
> Thanks for working on this, it opens up the possibility of future cleanups now
> we're not constrained by supporting cmd_rebase__interactive()
Yes!!!
Show 29 quoted lines
> On 01/09/2021 12:57, Johannes Schindelin via GitGitGadget wrote:
> > From: Johannes Schindelin <johannes.schindelin@gmx.de>
> > [...]
> > @@ -437,24 +362,6 @@ static int run_sequencer_rebase(struct rebase_options
> > *opts,
> >
> >     break;
> > }
> > -	case ACTION_SHORTEN_OIDS:
> > -	case ACTION_EXPAND_OIDS:
> > -		ret = transform_todo_file(flags);
> > -		break;
> > -	case ACTION_CHECK_TODO_LIST:
> > -		ret = check_todo_list_from_file(the_repository);
> > -		break;
> > -	case ACTION_REARRANGE_SQUASH:
> > -		ret = rearrange_squash_in_todo_file();
> > -		break;
> > -	case ACTION_ADD_EXEC: {
> > -		struct string_list commands = STRING_LIST_INIT_DUP;
> > -
> > -		split_exec_commands(opts->cmd, &commands);
> > -		ret = add_exec_commands(&commands);
> > -		string_list_clear(&commands, 0);
> > -		break;
> > -	}
>
> As Alban mentioned, I think it would be worth removing the enum members as
> well as the case clauses here.
Makes sense.

Thank you for your review, Dscho

Show 148 quoted lines
>
> Best Wishes
>
> Phillip
>
> >    default:
> >     BUG("invalid command '%d'", command);
> > }
> > @@ -476,98 +383,6 @@ static int parse_opt_keep_empty(const struct option
> > *opt, const char *arg,
> >    return 0;
> > }
> >   -static const char * const builtin_rebase_interactive_usage[] = {
> > -	N_("git rebase--interactive [<options>]"),
> > -	NULL
> > -};
> > -
> > -int cmd_rebase__interactive(int argc, const char **argv, const char
> > *prefix)
> > -{
> > -	struct rebase_options opts = REBASE_OPTIONS_INIT;
> > -	struct object_id squash_onto = *null_oid();
> > -	enum action command = ACTION_NONE;
> > -	struct option options[] = {
> > -		OPT_NEGBIT(0, "ff", &opts.flags, N_("allow fast-forward"),
> > -			   REBASE_FORCE),
> > -		OPT_CALLBACK_F('k', "keep-empty", &options, NULL,
> > -			N_("keep commits which start empty"),
> > -			PARSE_OPT_NOARG | PARSE_OPT_HIDDEN,
> > -			parse_opt_keep_empty),
> > -		OPT_BOOL_F(0, "allow-empty-message",
> > &opts.allow_empty_message,
> > -			   N_("allow commits with empty messages"),
> > -			   PARSE_OPT_HIDDEN),
> > -		OPT_BOOL(0, "rebase-merges", &opts.rebase_merges, N_("rebase
> > merge commits")),
> > -		OPT_BOOL(0, "rebase-cousins", &opts.rebase_cousins,
> > -			 N_("keep original branch points of cousins")),
> > -		OPT_BOOL(0, "autosquash", &opts.autosquash,
> > -			 N_("move commits that begin with squash!/fixup!")),
> > -		OPT_BOOL(0, "signoff", &opts.signoff, N_("sign commits")),
> > -		OPT_BIT('v', "verbose", &opts.flags,
> > -			N_("display a diffstat of what changed upstream"),
> > -			REBASE_NO_QUIET | REBASE_VERBOSE | REBASE_DIFFSTAT),
> > -		OPT_CMDMODE(0, "continue", &command, N_("continue rebase"),
> > -			    ACTION_CONTINUE),
> > -		OPT_CMDMODE(0, "skip", &command, N_("skip commit"),
> > ACTION_SKIP),
> > -		OPT_CMDMODE(0, "edit-todo", &command, N_("edit the todo
> > list"),
> > -			    ACTION_EDIT_TODO),
> > -		OPT_CMDMODE(0, "show-current-patch", &command, N_("show the
> > current patch"),
> > -			    ACTION_SHOW_CURRENT_PATCH),
> > -		OPT_CMDMODE(0, "shorten-ids", &command,
> > -			N_("shorten commit ids in the todo list"),
> > ACTION_SHORTEN_OIDS),
> > -		OPT_CMDMODE(0, "expand-ids", &command,
> > -			N_("expand commit ids in the todo list"),
> > ACTION_EXPAND_OIDS),
> > -		OPT_CMDMODE(0, "check-todo-list", &command,
> > -			N_("check the todo list"), ACTION_CHECK_TODO_LIST),
> > -		OPT_CMDMODE(0, "rearrange-squash", &command,
> > -			N_("rearrange fixup/squash lines"),
> > ACTION_REARRANGE_SQUASH),
> > -		OPT_CMDMODE(0, "add-exec-commands", &command,
> > -			N_("insert exec commands in todo list"),
> > ACTION_ADD_EXEC),
> > -		{ OPTION_CALLBACK, 0, "onto", &opts.onto, N_("onto"),
> > N_("onto"),
> > -		  PARSE_OPT_NONEG, parse_opt_commit, 0 },
> > -		{ OPTION_CALLBACK, 0, "restrict-revision",
> > &opts.restrict_revision,
> > -		  N_("restrict-revision"), N_("restrict revision"),
> > -		  PARSE_OPT_NONEG, parse_opt_commit, 0 },
> > -		{ OPTION_CALLBACK, 0, "squash-onto", &squash_onto,
> > N_("squash-onto"),
> > -		  N_("squash onto"), PARSE_OPT_NONEG, parse_opt_object_id, 0
> > },
> > -		{ OPTION_CALLBACK, 0, "upstream", &opts.upstream,
> > N_("upstream"),
> > -		  N_("the upstream commit"), PARSE_OPT_NONEG,
> > parse_opt_commit,
> > -		  0 },
> > -		OPT_STRING(0, "head-name", &opts.head_name, N_("head-name"),
> > N_("head name")),
> > -		{ OPTION_STRING, 'S', "gpg-sign", &opts.gpg_sign_opt,
> > N_("key-id"),
> > -			N_("GPG-sign commits"),
> > -			PARSE_OPT_OPTARG, NULL, (intptr_t) "" },
> > -		OPT_STRING(0, "strategy", &opts.strategy, N_("strategy"),
> > -			   N_("rebase strategy")),
> > -		OPT_STRING(0, "strategy-opts", &opts.strategy_opts,
> > N_("strategy-opts"),
> > -			   N_("strategy options")),
> > -		OPT_STRING(0, "switch-to", &opts.switch_to, N_("switch-to"),
> > -			   N_("the branch or commit to checkout")),
> > -		OPT_STRING(0, "onto-name", &opts.onto_name, N_("onto-name"),
> > N_("onto name")),
> > -		OPT_STRING(0, "cmd", &opts.cmd, N_("cmd"), N_("the command to
> > run")),
> > -		OPT_RERERE_AUTOUPDATE(&opts.allow_rerere_autoupdate),
> > -		OPT_BOOL(0, "reschedule-failed-exec",
> > &opts.reschedule_failed_exec,
> > -			 N_("automatically re-schedule any `exec` that
> > fails")),
> > -		OPT_END()
> > -	};
> > -
> > -	opts.rebase_cousins = -1;
> > -
> > -	if (argc == 1)
> > -		usage_with_options(builtin_rebase_interactive_usage, options);
> > -
> > -	argc = parse_options(argc, argv, prefix, options,
> > -			builtin_rebase_interactive_usage,
> > PARSE_OPT_KEEP_ARGV0);
> > -
> > -	if (!is_null_oid(&squash_onto))
> > -		opts.squash_onto = &squash_onto;
> > -
> > -	if (opts.rebase_cousins >= 0 && !opts.rebase_merges)
> > -		warning(_("--[no-]rebase-cousins has no effect without "
> > -			  "--rebase-merges"));
> > -
> > -	return !!run_sequencer_rebase(&opts, command);
> > -}
> > -
> >   static int is_merge(struct rebase_options *opts)
> >   {
> >   	return opts->type == REBASE_MERGE;
> > diff --git a/git.c b/git.c
> > index 18bed9a9964..268cdd82cfc 100644
> > --- a/git.c
> > +++ b/git.c
> > @@ -577,7 +577,6 @@ static struct cmd_struct commands[] = {
> >    { "range-diff", cmd_range_diff, RUN_SETUP | USE_PAGER },
> >    { "read-tree", cmd_read_tree, RUN_SETUP | SUPPORT_SUPER_PREFIX},
> >    { "rebase", cmd_rebase, RUN_SETUP | NEED_WORK_TREE },
> > -	{ "rebase--interactive", cmd_rebase__interactive, RUN_SETUP |
> > NEED_WORK_TREE },
> >    { "receive-pack", cmd_receive_pack },
> >    { "reflog", cmd_reflog, RUN_SETUP },
> >    { "remote", cmd_remote, RUN_SETUP },
> >
>
>
>
Previous: Phillip WoodNext: Ævar Arnfjörð Bjarmason
Message 43 of 78 in “Drop support for git rebase --preserve-merges”
  1. 0/8 Drop support for git rebase --preserve-mergesJohannes Schindelin via GitGitGadget, Nov 23, 2019
  2. 1/8 t5520: do not use `pull.rebase=preserve`Johannes Schindelin via GitGitGadget, Nov 23, 2019
  3. 2/8 remote: warn about unhandled branch.<name>.rebase valuesJohannes Schindelin via GitGitGadget, Nov 23, 2019
  4. 4/8 pull: remove support for `--rebase=preserve`Johannes Schindelin via GitGitGadget, Nov 23, 2019
  5. 6/8 git-svn: drop support for `--preserve-merges`Johannes Schindelin via GitGitGadget, Nov 23, 2019
  6. Eric WongNov 23, 2019
  7. Johannes SchindelinNov 24, 2019
  8. Eric WongNov 25, 2019
  9. 3/8 tests: stop testing `git rebase --preserve-merges`Johannes Schindelin via GitGitGadget, Nov 23, 2019
  10. 8/8 remote: no longer claim that branch.*.rebase=preserve is a thingJohannes Schindelin via GitGitGadget, Nov 23, 2019
  11. 7/8 rebase: drop the internal `rebase--interactive` commandJohannes Schindelin via GitGitGadget, Nov 23, 2019
  12. 5/8 rebase: drop support for `--preserve-merges`Johannes Schindelin via GitGitGadget, Nov 23, 2019
  13. 0/7 Drop support for git rebase --preserve-mergesJohannes Schindelin via GitGitGadget, Sep 1, 2021
  14. 1/7 t5520: do not use `pull.rebase=preserve`Johannes Schindelin via GitGitGadget, Sep 1, 2021
  15. 2/7 remote: warn about unhandled branch.<name>.rebase valuesJohannes Schindelin via GitGitGadget, Sep 1, 2021
  16. 4/7 pull: remove support for `--rebase=preserve`Johannes Schindelin via GitGitGadget, Sep 1, 2021
  17. 3/7 tests: stop testing `git rebase --preserve-merges`Johannes Schindelin via GitGitGadget, Sep 1, 2021
  18. Ævar Arnfjörð BjarmasonSep 1, 2021
  19. 6/7 git-svn: drop support for `--preserve-merges`Johannes Schindelin via GitGitGadget, Sep 1, 2021
  20. Ævar Arnfjörð BjarmasonSep 1, 2021
  21. Johannes SchindelinSep 2, 2021
  22. Johannes SchindelinSep 2, 2021
  23. 5/7 rebase: drop support for `--preserve-merges`Johannes Schindelin via GitGitGadget, Sep 1, 2021
  24. Ævar Arnfjörð BjarmasonSep 1, 2021
  25. Johannes SchindelinSep 2, 2021
  26. Ævar Arnfjörð BjarmasonSep 2, 2021
  27. Ævar Arnfjörð BjarmasonSep 1, 2021
  28. Johannes SchindelinSep 2, 2021
  29. Ævar Arnfjörð BjarmasonSep 2, 2021
  30. Ævar Arnfjörð BjarmasonSep 2, 2021
  31. Ævar Arnfjörð BjarmasonSep 2, 2021
  32. Ævar Arnfjörð BjarmasonSep 2, 2021
  33. Ævar Arnfjörð BjarmasonSep 2, 2021
  34. Johannes SchindelinSep 4, 2021
  35. Ævar Arnfjörð BjarmasonSep 5, 2021
  36. Junio C HamanoSep 5, 2021
  37. Phillip WoodSep 6, 2021
  38. Johannes SchindelinSep 7, 2021
  39. Phillip WoodSep 7, 2021
  40. Johannes SchindelinSep 7, 2021
  41. 7/7 rebase: drop the internal `rebase--interactive` commandJohannes Schindelin via GitGitGadget, Sep 1, 2021
  42. Phillip WoodSep 6, 2021
  43. Johannes SchindelinSep 7, 2021
  44. Ævar Arnfjörð BjarmasonSep 1, 2021
  45. Johannes SchindelinSep 2, 2021
  46. Ævar Arnfjörð BjarmasonSep 2, 2021
  47. Junio C HamanoSep 1, 2021
  48. Johannes SchindelinSep 2, 2021
  49. Johannes SixtSep 2, 2021
  50. Johannes SchindelinSep 7, 2021
  51. Elijah NewrenSep 7, 2021
  52. Johannes SchindelinSep 10, 2021
  53. Elijah NewrenSep 10, 2021
  54. merge-ort and --rebase-merges, was Re: [PATCH v2 0/7] Drop support for git rebase --preserve-mergesJohannes Schindelin, Sep 13, 2021
  55. Elijah NewrenSep 13, 2021
  56. Ævar Arnfjörð BjarmasonSep 6, 2021
  57. Junio C HamanoSep 7, 2021
  58. Ævar Arnfjörð BjarmasonSep 7, 2021
  59. Alban GruinSep 4, 2021
  60. Phillip WoodSep 6, 2021
  61. Johannes SchindelinSep 7, 2021
  62. 00/11 Drop support for git rebase --preserve-mergesJohannes Schindelin via GitGitGadget, Sep 7, 2021
  63. 01/11 t5520: do not use `pull.rebase=preserve`Johannes Schindelin via GitGitGadget, Sep 7, 2021
  64. 02/11 remote: warn about unhandled branch.<name>.rebase valuesJohannes Schindelin via GitGitGadget, Sep 7, 2021
  65. 03/11 tests: stop testing `git rebase --preserve-merges`Johannes Schindelin via GitGitGadget, Sep 7, 2021
  66. 04/11 pull: remove support for `--rebase=preserve`Johannes Schindelin via GitGitGadget, Sep 7, 2021
  67. 06/11 git-svn: drop support for `--preserve-merges`Johannes Schindelin via GitGitGadget, Sep 7, 2021
  68. 05/11 rebase: drop support for `--preserve-merges`Johannes Schindelin via GitGitGadget, Sep 7, 2021
  69. Ævar Arnfjörð BjarmasonSep 10, 2021
  70. re-mentioning --preserve-merges in the docs (was: [PATCH v3 05/11] rebase: drop support for `--preserve-merges`)Ævar Arnfjörð Bjarmason, Jul 21, 2022
  71. Junio C HamanoJul 21, 2022
  72. Johannes SchindelinJul 29, 2022
  73. 07/11 rebase: drop the internal `rebase--interactive` commandJohannes Schindelin via GitGitGadget, Sep 7, 2021
  74. 08/11 rebase: remove obsolete code commentJohannes Schindelin via GitGitGadget, Sep 7, 2021
  75. 09/11 rebase: stop mentioning the -p option in commentsJohannes Schindelin via GitGitGadget, Sep 7, 2021
  76. 10/11 rebase: remove a no-longer-used functionJohannes Schindelin via GitGitGadget, Sep 7, 2021
  77. 11/11 sequencer: restrict scope of a formerly public functionJohannes Schindelin via GitGitGadget, Sep 7, 2021
  78. Ævar Arnfjörð BjarmasonSep 8, 2021

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.