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