From: "Philip Oakley" <philipoakley@iee.org>
To: "Junio C Hamano" <gitster@pobox.com>, "Richard Hansen" <rhansen@bbn.com>
Cc: "Felipe Contreras" <felipe.contreras@gmail.com>,
"John Keeping" <john@keeping.me.uk>, <git@vger.kernel.org>,
"Andreas Krey" <a.krey@gmx.de>
Subject: Re: [PATCH 0/3] Reject non-ff pulls by default
Date: Sun, 8 Sep 2013 23:46:18 +0100 [thread overview]
Message-ID: <62FDB1B489D749349DDEE076E689C32E@PhilipOakley> (raw)
In-Reply-To: xmqqa9jn6v6q.fsf@gitster.dls.corp.google.com
From: "Junio C Hamano" <gitster@pobox.com>
Sent: Sunday, September 08, 2013 7:10 PM
> Richard Hansen <rhansen@bbn.com> writes:
>
>> On 2013-09-07 22:41, Felipe Contreras wrote:
>>> On Wed, Sep 4, 2013 at 5:59 PM, Junio C Hamano <gitster@pobox.com>
>>> wrote:
>>>
>>>> Which can be solved by adding the above "fail" option, and then
>>>> renaming them to "pull.integrate" and "branch.<name>.integrate" to
>>>> clarify what these variables are about (it is no longer "do you
>>>> rebase or not---if you choose not to rebase, by definition you are
>>>> going to merge", as there is a third choice to "fail"), while
>>>> retaining "pull.rebase" and "branch.<name>.rebase" as a deprecated
>>>> synonym.
>>>
>>> All these names are completely unintuitive. First of all, why
>>> "integrate"? Integrate what to what? And then, why "fail"? Fail on
>>> what circumstances? Always?
>>>
>>> My proposal that does:
>>>
>>> pull.mode = merge/rebase/merge-ff-only
>>>
>>> Is way more intuitive.
>>
>> +1
>>
>> What about something like:
>>
>> pull.mergeoptions (defaults to --ff-only)
>> pull.rebaseoptions (defaults to empty? --preserve-merges?)
>> branch.<name>.pull.mergeoptions (defaults to pull.mergeoptions)
>> branch.<name>.pull.rebaseoptions (defaults to pull.rebaseoptions)
>
> As "pull" has two distinct phases "fetch" and "merge/rebase", your
> mergeoptions/rebaseoptions is much better than "mode", which does
> not tell which phase of "pull" the mode refers to. It is clear that
> they apply to the process to integrate the history obtained from
> the other side and your own history into one history.
>
> But it does not help Philip's case, if I understand correctly, where
> running "git pull" on some branches is always a mistake
Not quite always, it's when it won't fast forward
> and the user
> wants it to stop at "fetch the history and objects needed to
> complete the history from the other side" phase without proceeding
> to the "then integrate the history from the other side and the
> history of your branch into one" step,
Yes, it/Git should stop and wait for instructions...
> which may be done with either
> merge or rebase.
Here I would typically rebase onto an adjusted destination, e.g. onto
pu, or maybe next, rather than master (or vice versa depending on
expectations). That is its a feature branch that needs to decide what
it's on top of (well, I need to decide ;-)
> Even if we ignore that "always fail, do not do
> anything" use case, your two seemingly independent "mergeoptions"
> and "rebaseoptions" do not tell us which one is preferred between
> merge and rebase. A single
>
> pull.<someoption> = rebase | merge [| always-fail]
>
> makes that choice in a clear way, I think.
or 'fail on non-ff' (which may or may not be the users, or Git's
default, as per the series title ;-)
>
> Regarding the verb "integrate".
>
> We used to explain "pull" is a "fetch" followed by a "merge". With
> more people using "git pull --rebase", the word "merge" used in that
> explanation of "pull" stopped being generic enough. Simplarily the
> "upstream branch" of local branch X is "what you fetch and merge to
> update the branch X" but that 'merge' can be 'rebase'. We needed a
> verb to call the process of integrate the two histories into one.
>
> "git pull --help" since 153d7265 (pull: change the description to
> "integrate" changes, 2013-07-07) uses that verb [*1*].
>
> And that is where the name of the single configuration to pick how
> to integrate the history obtained by the first phase of "pull" came
> from.
>
>
> [Footnote]
>
> *1* I suspect that there may still be places in the documentation
> that have not been updated since the days back when the only valid
> way to integrate two lines of histories was to merge, and updating
> them may be a low-hanging fruit. Hint, hint.
>
>
--
Philip
next prev parent reply other threads:[~2013-09-08 22:45 UTC|newest]
Thread overview: 84+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-08-31 22:38 [PATCH 0/3] Reject non-ff pulls by default Felipe Contreras
2013-08-31 22:38 ` [PATCH 1/3] merge: simplify ff-only option Felipe Contreras
2013-08-31 22:38 ` [PATCH 2/3] t: replace pulls with merges Felipe Contreras
2013-08-31 22:38 ` [PATCH 3/3] pull: reject non-ff pulls by default Felipe Contreras
2013-09-03 17:21 ` [PATCH 0/3] Reject " Junio C Hamano
2013-09-03 21:50 ` Felipe Contreras
2013-09-03 22:38 ` Junio C Hamano
2013-09-03 22:59 ` Felipe Contreras
2013-09-04 8:10 ` John Keeping
2013-09-04 9:25 ` Jeff King
2013-09-04 10:16 ` John Keeping
2013-09-08 2:52 ` Felipe Contreras
2013-09-08 4:18 ` Jeff King
2013-09-08 4:37 ` Felipe Contreras
2013-09-08 4:43 ` Jeff King
2013-09-08 5:09 ` Felipe Contreras
2013-09-08 5:21 ` Jeff King
2013-09-08 6:17 ` Felipe Contreras
2013-09-08 6:54 ` Jeff King
2013-09-08 7:15 ` Felipe Contreras
2013-09-08 7:50 ` Jeff King
2013-09-08 8:43 ` Felipe Contreras
2013-09-09 20:17 ` Jeff King
2013-09-09 22:59 ` Felipe Contreras
2013-09-08 10:03 ` John Keeping
2013-09-09 20:04 ` Jeff King
2013-09-08 17:26 ` brian m. carlson
2013-09-08 22:38 ` Felipe Contreras
2013-09-09 0:01 ` brian m. carlson
2013-09-09 0:29 ` Felipe Contreras
2013-09-09 0:36 ` Felipe Contreras
2013-09-09 0:38 ` brian m. carlson
2013-09-09 7:18 ` Matthieu Moy
2013-09-09 18:47 ` Junio C Hamano
2013-09-09 19:52 ` Jeff King
2013-09-09 20:24 ` John Keeping
2013-09-09 20:44 ` Jeff King
2013-09-09 21:10 ` John Keeping
2013-09-09 21:48 ` Richard Hansen
2013-09-09 20:50 ` Matthieu Moy
2013-09-09 20:53 ` Jeff King
2013-09-09 21:34 ` Philip Oakley
2013-09-09 23:02 ` Felipe Contreras
2013-09-10 8:08 ` John Keeping
2013-09-09 20:47 ` Matthieu Moy
2013-09-10 21:56 ` Junio C Hamano
2013-09-09 23:17 ` Felipe Contreras
2013-09-10 8:26 ` Matthieu Moy
2013-09-11 10:53 ` Felipe Contreras
2013-09-11 11:38 ` Matthieu Moy
2013-09-13 0:55 ` Felipe Contreras
2013-09-04 16:59 ` Junio C Hamano
2013-09-04 17:17 ` Junio C Hamano
2013-09-04 22:08 ` Philip Oakley
2013-09-04 22:59 ` Junio C Hamano
2013-09-05 8:06 ` John Keeping
2013-09-05 19:18 ` Junio C Hamano
2013-09-05 19:26 ` John Keeping
2013-09-06 21:41 ` Jonathan Nieder
2013-09-06 22:14 ` Junio C Hamano
2013-09-07 11:07 ` John Keeping
2013-09-08 2:36 ` Felipe Contreras
2013-09-08 2:34 ` Felipe Contreras
2013-09-08 8:01 ` Philip Oakley
2013-09-08 8:16 ` Felipe Contreras
2013-09-08 8:42 ` Philip Oakley
2013-09-08 8:49 ` Felipe Contreras
2013-09-08 10:02 ` Philip Oakley
2013-09-08 10:39 ` Philip Oakley
2013-09-05 11:01 ` John Szakmeister
2013-09-05 11:38 ` John Keeping
2013-09-05 12:37 ` John Szakmeister
2013-09-05 15:20 ` Richard Hansen
2013-09-05 21:30 ` Philip Oakley
2013-09-05 23:45 ` Junio C Hamano
2013-09-05 23:38 ` Junio C Hamano
2013-09-08 2:41 ` Felipe Contreras
2013-09-08 6:17 ` Richard Hansen
2013-09-08 18:10 ` Junio C Hamano
2013-09-08 20:05 ` Richard Hansen
2013-09-08 22:46 ` Philip Oakley [this message]
2013-09-08 22:46 ` Felipe Contreras
2013-09-08 23:11 ` Ramkumar Ramachandra
2013-09-05 13:31 ` Greg Troxel
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=62FDB1B489D749349DDEE076E689C32E@PhilipOakley \
--to=philipoakley@iee.org \
--cc=a.krey@gmx.de \
--cc=felipe.contreras@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=john@keeping.me.uk \
--cc=rhansen@bbn.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).