Subject: Re: [PATCH 3/3] rebase: note `preserve` merges may be a pull config option

From: Junio C Hamano <[email-masked]>
Date: Thu, 26 May 2022 13:55:36 -0700

"Philip Oakley via GitGitGadget" <[email-masked]> writes:

> From: Philip Oakley <[email-masked]>
>
> The `--preserve-merges` option was removed by v2.35.0. However

Are you sure about that?

52f1e821 (pull: remove support for `--rebase=preserve`, 2021-09-07)
that is in v2.34.0 and above dropped pull.rebase=preserve from the
Documentation/config/pull.txt (and others).  My local collection
of various Git versions agrees with me.  "git help config" from
2.34.0 does not list preserve as a valid choice, but 2.33.0 does.

> users may not be aware that it is also a Pull option, and it is
> still offered by major IDE vendors such as Visual Studio.
>
> Extend the `--preserve-merges` die message to also direct users to
> the use of the `preserve` option in the `pull` config.
>
> Signed-off-by: Philip Oakley <[email-masked]>
> ---
>  builtin/rebase.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/builtin/rebase.c b/builtin/rebase.c
> index aada25a8870..6fc0aaebbb8 100644
> --- a/builtin/rebase.c
> +++ b/builtin/rebase.c
> @@ -1205,7 +1205,8 @@ int cmd_rebase(int argc, const char **argv, const char *prefix)
>  			     builtin_rebase_usage, 0);
>  
>  	if (preserve_merges_selected)
> -		die(_("--preserve-merges was replaced by --rebase-merges"));
> +		die(_("--preserve-merges was replaced by --rebase-merges\n"
> +			"Your `pull` configuration, may also invoke this option."));

What is a `pull` configuration?  Our configuration variable names
all have at least one dot in it.  I think it is better to be
explicit to clarify what exactly we are suggesting to fix.

"Your `pull.rebase` configuration may be set to 'preserve', which is
no longer supported; use 'merges' instead", or somesuch?

Thanks.