Skip to content

Commit

Permalink
pull: remove support for --rebase=preserve
Browse files Browse the repository at this point in the history
In preparation for `git-rebase--preserve-merges.sh` entering its after
life, we remove this (deprecated) option that would still rely on it.

To help users transition who still did not receive the memo about the
deprecation, we offer a helpful error message instead of throwing our
hands in the air and saying that we don't know that option, never heard
of it.

Signed-off-by: Johannes Schindelin <[email protected]>
Reviewed-by: Ævar Arnfjörð Bjarmason <[email protected]>
Signed-off-by: Junio C Hamano <[email protected]>
  • Loading branch information
dscho authored and gitster committed Sep 8, 2021
1 parent aa4df10 commit 52f1e82
Show file tree
Hide file tree
Showing 7 changed files with 8 additions and 23 deletions.
4 changes: 0 additions & 4 deletions Documentation/config/branch.txt
Original file line number Diff line number Diff line change
Expand Up @@ -85,10 +85,6 @@ When `merges` (or just 'm'), pass the `--rebase-merges` option to 'git rebase'
so that the local merge commits are included in the rebase (see
linkgit:git-rebase[1] for details).
+
When `preserve` (or just 'p', deprecated in favor of `merges`), also pass
`--preserve-merges` along to 'git rebase' so that locally committed merge
commits will not be flattened by running 'git pull'.
+
When the value is `interactive` (or just 'i'), the rebase is run in interactive
mode.
+
Expand Down
4 changes: 0 additions & 4 deletions Documentation/config/pull.txt
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,6 @@ When `merges` (or just 'm'), pass the `--rebase-merges` option to 'git rebase'
so that the local merge commits are included in the rebase (see
linkgit:git-rebase[1] for details).
+
When `preserve` (or just 'p', deprecated in favor of `merges`), also pass
`--preserve-merges` along to 'git rebase' so that locally committed merge
commits will not be flattened by running 'git pull'.
+
When the value is `interactive` (or just 'i'), the rebase is run in interactive
mode.
+
Expand Down
6 changes: 1 addition & 5 deletions Documentation/git-pull.txt
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@ Options related to merging
include::merge-options.txt[]

-r::
--rebase[=false|true|merges|preserve|interactive]::
--rebase[=false|true|merges|interactive]::
When true, rebase the current branch on top of the upstream
branch after fetching. If there is a remote-tracking branch
corresponding to the upstream branch and the upstream branch
Expand All @@ -113,10 +113,6 @@ When set to `merges`, rebase using `git rebase --rebase-merges` so that
the local merge commits are included in the rebase (see
linkgit:git-rebase[1] for details).
+
When set to `preserve` (deprecated in favor of `merges`), rebase with the
`--preserve-merges` option passed to `git rebase` so that locally created
merge commits will not be flattened.
+
When false, merge the upstream branch into the current branch.
+
When `interactive`, enable the interactive mode of rebase.
Expand Down
9 changes: 3 additions & 6 deletions builtin/pull.c
Original file line number Diff line number Diff line change
Expand Up @@ -30,9 +30,8 @@
/**
* Parses the value of --rebase. If value is a false value, returns
* REBASE_FALSE. If value is a true value, returns REBASE_TRUE. If value is
* "merges", returns REBASE_MERGES. If value is "preserve", returns
* REBASE_PRESERVE. If value is a invalid value, dies with a fatal error if
* fatal is true, otherwise returns REBASE_INVALID.
* "merges", returns REBASE_MERGES. If value is a invalid value, dies with
* a fatal error if fatal is true, otherwise returns REBASE_INVALID.
*/
static enum rebase_type parse_config_rebase(const char *key, const char *value,
int fatal)
Expand Down Expand Up @@ -126,7 +125,7 @@ static struct option pull_options[] = {
/* Options passed to git-merge or git-rebase */
OPT_GROUP(N_("Options related to merging")),
OPT_CALLBACK_F('r', "rebase", &opt_rebase,
"(false|true|merges|preserve|interactive)",
"(false|true|merges|interactive)",
N_("incorporate changes by rebasing rather than merging"),
PARSE_OPT_OPTARG, parse_opt_rebase),
OPT_PASSTHRU('n', NULL, &opt_diffstat, NULL,
Expand Down Expand Up @@ -883,8 +882,6 @@ static int run_rebase(const struct object_id *newbase,
/* Options passed to git-rebase */
if (opt_rebase == REBASE_MERGES)
strvec_push(&args, "--rebase-merges");
else if (opt_rebase == REBASE_PRESERVE)
strvec_push(&args, "--preserve-merges");
else if (opt_rebase == REBASE_INTERACTIVE)
strvec_push(&args, "--interactive");
if (opt_diffstat)
Expand Down
2 changes: 1 addition & 1 deletion contrib/completion/git-completion.bash
Original file line number Diff line number Diff line change
Expand Up @@ -2543,7 +2543,7 @@ __git_complete_config_variable_value ()
return
;;
branch.*.rebase)
__gitcomp "false true merges preserve interactive" "" "$cur_"
__gitcomp "false true merges interactive" "" "$cur_"
return
;;
remote.pushdefault)
Expand Down
5 changes: 3 additions & 2 deletions rebase.c
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
#include "rebase.h"
#include "config.h"
#include "gettext.h"

/*
* Parses textual value for pull.rebase, branch.<name>.rebase, etc.
Expand All @@ -20,12 +21,12 @@ enum rebase_type rebase_parse_value(const char *value)
return REBASE_FALSE;
else if (v > 0)
return REBASE_TRUE;
else if (!strcmp(value, "preserve") || !strcmp(value, "p"))
return REBASE_PRESERVE;
else if (!strcmp(value, "merges") || !strcmp(value, "m"))
return REBASE_MERGES;
else if (!strcmp(value, "interactive") || !strcmp(value, "i"))
return REBASE_INTERACTIVE;
else if (!strcmp(value, "preserve") || !strcmp(value, "p"))
error(_("%s: 'preserve' superseded by 'merges'"), value);
/*
* Please update _git_config() in git-completion.bash when you
* add new rebase modes.
Expand Down
1 change: 0 additions & 1 deletion rebase.h
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ enum rebase_type {
REBASE_INVALID = -1,
REBASE_FALSE = 0,
REBASE_TRUE,
REBASE_PRESERVE,
REBASE_MERGES,
REBASE_INTERACTIVE
};
Expand Down

0 comments on commit 52f1e82

Please sign in to comment.