From: Felipe Contreras <felipe.contreras@gmail.com>
To: Junio C Hamano <gitster@pobox.com>,
Felipe Contreras <felipe.contreras@gmail.com>
Cc: git@vger.kernel.org
Subject: Re: [PATCH v7 0/5] making pull advice not to trigger when unneeded
Date: Wed, 23 Dec 2020 08:10:09 -0600 [thread overview]
Message-ID: <5fe34fc13163_198be208bd@natae.notmuch> (raw)
In-Reply-To: <xmqqsg7waleg.fsf@gitster.c.googlers.com>
Junio C Hamano wrote:
> Felipe Contreras <felipe.contreras@gmail.com> writes:
>
> > It's clear --ff doesn't imply a merge, so we shouldn't act as if it was.
>
> Do you specifically mean --ff, or do you talk collectively about
> anything that goes in opt_ff in the C code?
I meant --ff, but the rationale can be extended to all of opt_ff.
> The "--ff" option means "we are allowing fast-forward, so please do
> not make new commit object unnecessarily, but it is just we are
> allowing---we are not limiting ourselves to fast-forard; feel free
> to create a merge commit if necessary".
Yes. *If* a rebase is not specified.
> So it does imply that the user prefers to merge and does not want to
> rebase.
We could imply that, but currently it doesn't.
Currently this does not do a merge:
git config pull.rebase true
git pull --ff
> If you meant what opt_ff can relay, then there are "--no-ff" and
> "--ff-only" to consider:
>
> - "--no-ff" says "we do not allow fast-forward; when the other side
> is pure descendant of ours, create a merge commit to make them
> the second parent, so that our side of the history stays to be
> the first-parent chain that merged them as a side topic." It may
> not say what should happen when the history does not
> fast-forward, and it _is_ possible to argue, for the sake of
> argument, that it asks to rebase if not fast-forward (so that
> their history becomes the primary and we build on top of them)
> while asking to merge if fast-forward (so that our history stays
> the primary and we absorb their work as a side branch), but that
> is a behavior that does not make much sense.
I agree it doesn't make much sense; if the user wants a rebase in case
of non-fast-forward, --no-ff is the only way.
> It is much easier to reason about if we accept that the user who
> says "--no-ff" expects a merge to happen, not a rebase.
Yes, but currently that's not the case.
Currently this doesn't do a merge:
git config pull.rebase true
git pull --no-ff
We would need to change the semantics.
> - "--ff-only" says "when their history is pure descendant of ours,
> just fast-forward our branch to match their history, and
> otherwise fail." This one does not have to imply either merge or
> rebase, as both would give us identical result (i.e. merge would
> fast-forward and rebase would replay *no* work of our own on top
> of theirs. Either case, the result is that our branch tip now
> points at the tip of their history).
>
> The topic under discussion is based on the "we do not have to
> give advice between merge and rebase if the history
> fast-forwards", and anybody in support of the topic would be in
> agreement with this case.
Yes.
> In any case, I think what we have in 'seen' already is a good
> stopping point for this cycle.
It's not a bad stopping point.
But the next patches are needed too. Up to the first 6 patches should be
uncontroversial.
> We are not erroring out any new case and simply not showing an advice
> in a situation that it would not apply---the question "does --ff imply
> merge?" does not have to be answered in order to evaluate the 5-patch
> series we have.
Not my patches.
The patch you introduced regarding rebase_unspecified does depend on
what happens next. If we decide to change the semantics of --ff* and
imply a merge, then my patch to add REBASE_DEFAULT is needed, and as you
can see in another patch series [1], that basically has to revert your patch.
Cheers.
[1] https://lore.kernel.org/git/20201218211026.1937168-8-felipe.contreras@gmail.com/
--
Felipe Contreras
prev parent reply other threads:[~2020-12-23 14:11 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-12-14 20:26 [PATCH v7 0/5] making pull advice not to trigger when unneeded Junio C Hamano
2020-12-14 20:26 ` [PATCH v7 1/5] pull: refactor fast-forward check Junio C Hamano
2020-12-14 20:26 ` [PATCH v7 2/5] pull: give the advice for choosing rebase/merge much later Junio C Hamano
2020-12-14 20:26 ` [PATCH v7 3/5] pull: get rid of unnecessary global variable Junio C Hamano
2020-12-14 20:59 ` Felipe Contreras
2020-12-14 23:16 ` Junio C Hamano
2020-12-15 2:55 ` Felipe Contreras
2020-12-14 20:26 ` [PATCH v7 4/5] pull: correct condition to trigger non-ff advice Junio C Hamano
2020-12-14 21:17 ` Felipe Contreras
2020-12-14 23:19 ` Junio C Hamano
2020-12-15 6:35 ` Felipe Contreras
2020-12-14 20:26 ` [PATCH v7 5/5] pull: display default warning only when non-ff Junio C Hamano
2020-12-14 21:24 ` Felipe Contreras
2020-12-14 23:20 ` Junio C Hamano
2020-12-15 2:57 ` Felipe Contreras
2020-12-15 6:30 ` [PATCH v7 0/5] making pull advice not to trigger when unneeded Felipe Contreras
2020-12-15 10:58 ` Junio C Hamano
2020-12-15 12:22 ` Felipe Contreras
2020-12-18 20:46 ` Felipe Contreras
2020-12-23 10:04 ` Junio C Hamano
2020-12-23 14:10 ` Felipe Contreras [this message]
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=5fe34fc13163_198be208bd@natae.notmuch \
--to=felipe.contreras@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).