Subject: Re: [PATCH 1/2] advice: add diverging advice for novices

From: Junio C Hamano <[email-masked]>
Date: Wed, 08 Mar 2023 09:17:42 -0800

Felipe Contreras <[email-masked]> writes:

> The user might not necessarily know why ff only was configured, maybe an
> admin did it, or the installer (Git for Windows), or perhaps they just
> followed some online advice.
>
> This can happen not only on pull.ff=only, but merge.ff=only too.
>
> Even worse if the user has configured pull.rebase=false and
> merge.ff=only, because in those cases a diverging merge will constantly
> keep failing. There's no trivial way to get out of this other than
> `git merge --no-ff`.

A good description.  Without this explained, the instruction to run
"git merge" with "--no-ff" in the text would have been puzzling to
readers.  At least I was initially puzzled as I read the patch text
before the proposed log message.

>  void NORETURN die_ff_impossible(void)
>  {
> +	advise(_("Diverging branches can't be fast-forwarded, you need to either:\n"
> +		"\n"
> +		"\tgit merge --no-ff\n"
> +		"\n"
> +		"or:\n"
> +		"\n"
> +		"\tgit rebase\n"));
>  	die(_("Not possible to fast-forward, aborting."));
>  }