From: Tao Klerks <tao@klerks.biz>
To: Alex Henrie <alexhenrie24@gmail.com>
Cc: Tao Klerks via GitGitGadget <gitgitgadget@gmail.com>,
git@vger.kernel.org,
Johannes Schindelin <Johannes.Schindelin@gmx.de>
Subject: Re: [PATCH] pull: conflict hint pull.rebase suggestion should offer "merges" vs "true"
Date: Fri, 17 Feb 2023 12:15:19 +0100 [thread overview]
Message-ID: <CAPMMpoj0Ts=c=Wq1eghjJ75HVyy5ZyKjL3o9=AB8SDb5Wf99mw@mail.gmail.com> (raw)
In-Reply-To: <CAMMLpeTQ1RpsvwRdZ0G3wdvH1+LXE5tw=7Cs6Q+HxMcRU0qj5Q@mail.gmail.com>
On Fri, Feb 17, 2023 at 4:15 AM Alex Henrie <alexhenrie24@gmail.com> wrote:
>
> I would be OK with the proposed patch if it were part
> of a larger effort to make --rebase-merges the default behavior of
> `git rebase`.
Heh, what would it take to convince you there is such an effort? :) -
sparse and minor as my contributions are, I certainly believe that is
a "natural" effort that I will do what I can to support.
> That seems like an achievable goal, and I don't think it
> would take multiple years, maybe one year at the most.
My estimate is based on the observation that there are still, several
years after --rebase-merges was introduced, git GUIs that don't handle
it right - eg Jetbrains IDEA:
https://youtrack.jetbrains.com/issue/IDEA-232160/Rebase-merges-is-not-properly-supported
This kind of functionality change should be slow, not because it's a
huge amount of work, but more because it takes time for the entire
ecosystem to adapt. Git releases basically-monthly, but many of the
systems that users use git with release far less often; similarly,
it's helpful to users who use a mix of current and older systems (I'm
looking at you, CentOS 7) for the introduction and recommendation of a
behavior change to come *long* before its defaulting.
> The process
> would look something like this:
>
> 1. Add a --no-rebase-merges option to `git rebase`.
>
> 2. Add a rebase.merges config option.
Yes and yes! I alluded to this in
https://lore.kernel.org/git/CAPMMpoj6E-85a59EaHD2aR_oKA=_u78qRV+wp8mqXkR39KctmA@mail.gmail.com/
but didn't feel I'd likely to make a solid change along these lines.
>
> 3. Add a warning to `git rebase` that appears if rebase.merges is
> unset and neither --rebase-merges nor --no-rebase-merges is given. The
> warning would advise the user that the default behavior of `git
> rebase` will change in a future release and suggest setting
> rebase.merges=no-rebase-cousins to get the new behavior now.
>
Makes sense to me!
> 4. Change the `git pull` advice to recommend --rebase=merges and
> pull.rebase=merges.
>
I'm not sure why this would be step 4 - I would (and did try to) make
it step 1 :)
> 5. Wait a couple of releases.
>
As I noted above, I believe it should be far more than a couple.
> 6. Change the default behavior of `git rebase` to `git rebase
> --rebase-merges` and the default behavior of `git pull --rebase` to
> `git pull --rebase=merges`. At the same time, remove the warning from
> `git rebase`. The old `git pull` behavior would still be available as
> `git pull --rebase=true`.
>
Makes sense to me!
> 7. Change the `git pull` advice to recommend the short and simple
> --rebase option again (leaving the recommendation of
> pull.rebase=merges for the config option).
>
> Does that sound reasonable? I think I could lend a hand with steps 1-3.
>
I'm sold, except insofar as I think the right approach is to move step
4 to be the first :)
next prev parent reply other threads:[~2023-02-17 11:16 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-02-05 16:24 [PATCH] pull: conflict hint pull.rebase suggestion should offer "merges" vs "true" Tao Klerks via GitGitGadget
2023-02-16 3:22 ` Alex Henrie
2023-02-16 12:31 ` Tao Klerks
2023-02-17 3:15 ` Alex Henrie
2023-02-17 11:15 ` Tao Klerks [this message]
2023-02-17 18:56 ` Alex Henrie
2023-02-17 17:39 ` Junio C Hamano
2023-02-18 3:17 ` Elijah Newren
2023-02-18 16:39 ` Phillip Wood
2023-02-20 8:03 ` Tao Klerks
2023-02-20 16:45 ` Phillip Wood
2023-02-20 16:56 ` Elijah Newren
2023-02-21 14:04 ` Tao Klerks
2023-02-22 14:27 ` Sergey Organov
2023-02-24 7:06 ` Elijah Newren
2023-02-24 22:06 ` Sergey Organov
2023-02-24 23:59 ` Elijah Newren
2023-02-25 15:15 ` Sergey Organov
2023-02-25 16:28 ` Elijah Newren
2023-02-26 9:29 ` Sergey Organov
2023-02-27 15:20 ` Elijah Newren
2023-02-27 17:17 ` Sergey Organov
2023-02-28 2:35 ` Elijah Newren
2023-02-20 16:46 ` Elijah Newren
2023-02-20 6:01 ` Tao Klerks
2023-02-20 17:20 ` Elijah Newren
2023-02-20 18:33 ` Alex Henrie
2023-02-21 15:40 ` Tao Klerks
2023-02-21 17:45 ` Alex Henrie
2023-02-21 15:01 ` Tao Klerks
2023-02-24 7:06 ` Elijah Newren
2023-02-28 14:13 ` Felipe Contreras
2023-02-28 20:04 ` Alex Henrie
2023-03-01 12:46 ` 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
List information: http://vger.kernel.org/majordomo-info.html
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='CAPMMpoj0Ts=c=Wq1eghjJ75HVyy5ZyKjL3o9=AB8SDb5Wf99mw@mail.gmail.com' \
--to=tao@klerks.biz \
--cc=Johannes.Schindelin@gmx.de \
--cc=alexhenrie24@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitgitgadget@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.
Code repositories for project(s) associated with this public inbox
https://80x24.org/mirrors/git.git
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 read-only IMAP folder(s) and NNTP newsgroup(s).