This revision removes --ignore-whitespace from rebase--interactive since its only caller preserve-merges is now deprecated. Also rename t3431 to t3433. Rohit Ashiwal (1): rebase -i: add --ignore-whitespace flag Documentation/git-rebase.txt | 10 +++- builtin/rebase.c | 26 ++++++++-- t/t3422-rebase-incompatible-options.sh | 1 - t/t3433-rebase-options-compatibility.sh | 66 +++++++++++++++++++++++++ 4 files changed, 96 insertions(+), 7 deletions(-) create mode 100755 t/t3433-rebase-options-compatibility.sh Range-diff: 1: a1bb91fe43 ! 1: eef6f6fa25 rebase -i: add --ignore-whitespace flag @@ -42,6 +42,7 @@ * --preserve-merges and --interactive * --preserve-merges and --signoff * --preserve-merges and --rebase-merges ++ * --preserve-merges and --ignore-whitespace + * --rebase-merges and --ignore-whitespace * --rebase-merges and --strategy * --rebase-merges and --strategy-option @@ -59,9 +60,19 @@ int autostash; char *cmd; @@ - flags |= opts->rebase_cousins > 0 ? TODO_LIST_REBASE_COUSINS : 0; - flags |= command == ACTION_SHORTEN_OIDS ? TODO_LIST_SHORTEN_IDS : 0; + .git_format_patch_opt = STRBUF_INIT \ + } + +-static struct replay_opts get_replay_opts(const struct rebase_options *opts) ++static struct replay_opts get_replay_opts(struct rebase_options *opts) + { + struct replay_opts replay = REPLAY_OPTS_INIT; +@@ + replay.reschedule_failed_exec = opts->reschedule_failed_exec; + replay.gpg_sign = xstrdup_or_null(opts->gpg_sign_opt); + replay.strategy = opts->strategy; ++ + if (opts->ignore_whitespace) { + struct strbuf buf = STRBUF_INIT; + @@ -72,19 +83,9 @@ + free(opts->strategy_opts); + opts->strategy_opts = strbuf_detach(&buf, NULL); + } -+ - switch (command) { - case ACTION_NONE: { - if (!opts->onto && !opts->upstream) -@@ - { OPTION_STRING, 'S', "gpg-sign", &opts.gpg_sign_opt, N_("key-id"), - N_("GPG-sign commits"), - PARSE_OPT_OPTARG, NULL, (intptr_t) "" }, -+ OPT_BOOL(0, "ignore-whitespace", &opts.ignore_whitespace, -+ N_("ignore changes in whitespace")), - OPT_STRING(0, "strategy", &opts.strategy, N_("strategy"), - N_("rebase strategy")), - OPT_STRING(0, "strategy-opts", &opts.strategy_opts, N_("strategy-opts"), + if (opts->strategy_opts) + parse_strategy_opts(&replay, opts->strategy_opts); + @@ argc = parse_options(argc, argv, NULL, options, builtin_rebase_interactive_usage, PARSE_OPT_KEEP_ARGV0); @@ -133,18 +134,6 @@ die(_("cannot combine '--rebase-merges' with " "'--strategy-option'")); - diff --git a/sequencer.h b/sequencer.h - --- a/sequencer.h - +++ b/sequencer.h -@@ - int verbose; - int quiet; - int reschedule_failed_exec; -+ int ignore_whitespace; - - int mainline; - - diff --git a/t/t3422-rebase-incompatible-options.sh b/t/t3422-rebase-incompatible-options.sh --- a/t/t3422-rebase-incompatible-options.sh +++ b/t/t3422-rebase-incompatible-options.sh @@ -157,10 +146,10 @@ test_rebase_am_only -C4 - diff --git a/t/t3431-rebase-options-compatibility.sh b/t/t3431-rebase-options-compatibility.sh + diff --git a/t/t3433-rebase-options-compatibility.sh b/t/t3433-rebase-options-compatibility.sh new file mode 100755 --- /dev/null - +++ b/t/t3431-rebase-options-compatibility.sh + +++ b/t/t3433-rebase-options-compatibility.sh @@ +#!/bin/sh +# @@ -184,7 +173,7 @@ + EOF + git add file && + git commit -m "add file" && -+ q_to_tab >file <<-EOF && ++ cat >file <<-EOF && + line 1 + new line 2 + line 3 @@ -193,7 +182,7 @@ + git tag side && + + git checkout --orphan master && -+ q_to_tab >file <<-EOF && ++ cat >file <<-EOF && + line 1 + line 2 + line 3 -- 2.21.0