From: Felipe Contreras <felipe.contreras@gmail.com>
To: Alex Henrie <alexhenrie24@gmail.com>,
Felipe Contreras <felipe.contreras@gmail.com>
Cc: "Git mailing list" <git@vger.kernel.org>,
"Phillip Wood" <phillip.wood123@gmail.com>,
"Ævar Arnfjörð Bjarmason" <avarab@gmail.com>,
"Junio C Hamano" <gitster@pobox.com>,
"Elijah Newren" <newren@gmail.com>
Subject: Re: [PATCH] pull: abort if --ff-only is given and fast-forwarding is impossible
Date: Sun, 11 Jul 2021 16:41:28 -0500 [thread overview]
Message-ID: <60eb6588c6ef2_a2044208b0@natae.notmuch> (raw)
In-Reply-To: <CAMMLpeRwpxEe5qJumwXa5hyjeUBrTRDU3-1OSHDNc=UiNqN48w@mail.gmail.com>
Alex Henrie wrote:
> On Sun, Jul 11, 2021 at 11:08 AM Felipe Contreras
> <felipe.contreras@gmail.com> wrote:
> >
> > Alex Henrie wrote:
> > > The warning about pulling without specifying how to reconcile divergent
> > > branches says that after setting pull.rebase to true, --ff-only can
> > > still be passed on the command line to require a fast-forward. Make that
> > > actually work.
> >
> > I don't know where that is being said, but it's wrong: --ff-only is
> > meant for merge only.
> >
> > > --- a/builtin/pull.c
> > > +++ b/builtin/pull.c
> > > @@ -1046,9 +1046,14 @@ int cmd_pull(int argc, const char **argv, const char *prefix)
> > >
> > > can_ff = get_can_ff(&orig_head, &merge_heads.oid[0]);
> > >
> > > - if (rebase_unspecified && !opt_ff && !can_ff) {
> > > - if (opt_verbosity >= 0)
> > > - show_advice_pull_non_ff();
> > > + if (!can_ff) {
> > > + if (opt_ff) {
> > > + if (!strcmp(opt_ff, "--ff-only"))
> > > + die_ff_impossible();
> >
> > As I've mentioned multiple times already, this is wrong.
> >
> > The advice clearly says:
> >
> > You can also pass --rebase, --no-rebase, or --ff-only on the command
> > line to override the configured default per invocation.
> >
> > With your patch now this is even less true:
> >
> > git -c pull.ff=only pull --rebase
>
> I think it's an improvement over the current situation. --no-rebase
> does not override pull.ff=only, so it makes sense that --rebase does
> not override pull.ff=only either.
I disagree, but that's not the point, the point is that now the advice
message is wrong since --rebase doesn't override pull.ff=only.
Additionally the documentation is inaccurate too because at no point
does pull.ff mention anything about rebase:
pull.ff::
By default, Git does not create an extra merge commit when merging
a commit that is a descendant of the current commit. Instead, the
tip of the current branch is fast-forwarded. When set to `false`,
this variable tells Git to create an extra merge commit in such
a case (equivalent to giving the `--no-ff` option from the command
line). When set to `only`, only such fast-forward merges are
allowed (equivalent to giving the `--ff-only` option from the
command line). This setting overrides `merge.ff` when pulling.
--
Felipe Contreras
next prev parent reply other threads:[~2021-07-11 21:41 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-07-11 1:26 [PATCH] pull: abort if --ff-only is given and fast-forwarding is impossible Alex Henrie
2021-07-11 17:08 ` Felipe Contreras
2021-07-11 20:00 ` Alex Henrie
2021-07-11 21:41 ` Felipe Contreras [this message]
2021-07-12 10:21 ` Phillip Wood
2021-07-12 16:04 ` Felipe Contreras
2021-07-12 16:29 ` Alex Henrie
2021-07-12 17:43 ` Felipe Contreras
2021-07-12 17:08 ` Junio C Hamano
2021-07-12 17:30 ` Felipe Contreras
2021-07-12 17:50 ` Elijah Newren
2021-07-12 18:20 ` Felipe Contreras
2021-07-12 18:20 ` Alex Henrie
2021-07-12 18:24 ` Alex Henrie
2021-07-12 19:55 ` Junio C Hamano
2021-07-12 20:19 ` Felipe Contreras
2021-07-12 20:51 ` Elijah Newren
2021-07-12 23:00 ` Junio C Hamano
2021-07-12 23:05 ` Felipe Contreras
2021-07-12 23:24 ` Elijah Newren
2021-07-12 20:37 ` Elijah Newren
2021-07-12 21:06 ` Felipe Contreras
2021-07-12 17:54 ` Phillip Wood
2021-07-14 8:37 ` Son Luong Ngoc
2021-07-14 15:14 ` Felipe Contreras
2021-07-14 15:22 ` Elijah Newren
2021-07-14 17:19 ` Junio C Hamano
2021-07-14 17:31 ` Felipe Contreras
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=60eb6588c6ef2_a2044208b0@natae.notmuch \
--to=felipe.contreras@gmail.com \
--cc=alexhenrie24@gmail.com \
--cc=avarab@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=newren@gmail.com \
--cc=phillip.wood123@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.