rebase: deprecate --rebase-merges=""

The unusual syntax --rebase-merges="" (that is, --rebase-merges with an empty string argument) has been an undocumented synonym of --rebase-merges without an argument. Deprecate that syntax to avoid confusion when a rebase.rebaseMerges config option is introduced, where rebase.rebaseMerges="" will be equivalent to --no-rebase-merges. It is not likely that anyone is actually using this syntax, but just in case, deprecate the empty string argument instead of dropping support for it immediately. Signed-off-by: Alex Henrie <alexhenrie24@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Alex Henrie committed Mar 25, 2023 at 21:06 UTC 33561f517036dd0bcddf319a56fd3488759396e5
1 file changed +6 -2
builtin/rebase.c
+6 -2
@@ -1141,7 +1141,7 @@ int cmd_rebase(int argc, const char **argv, const char *prefix)
1141 {OPTION_STRING, 'r', "rebase-merges", &rebase_merges,
1142 N_("mode"),
1143 N_("try to rebase merges instead of skipping them"),
1144 - PARSE_OPT_OPTARG, NULL, (intptr_t)""},
1144 + PARSE_OPT_OPTARG, NULL, (intptr_t)"no-rebase-cousins"},
1145 OPT_BOOL(0, "fork-point", &options.fork_point,
1146 N_("use 'merge-base --fork-point' to refine upstream")),
1147 OPT_STRING('s', "strategy", &options.strategy,
@@ -1439,7 +1439,11 @@ int cmd_rebase(int argc, const char **argv, const char *prefix)
1439
1440 if (rebase_merges) {
1441 if (!*rebase_merges)
1442 - ; /* default mode; do nothing */
1442 + warning(_("--rebase-merges with an empty string "
1443 + "argument is deprecated and will stop "
1444 + "working in a future version of Git. Use "
1445 + "--rebase-merges without an argument "
1446 + "instead, which does the same thing."));
1447 else if (!strcmp("rebase-cousins", rebase_merges))
1448 options.rebase_cousins = 1;
1449 else if (strcmp("no-rebase-cousins", rebase_merges))