Re: [RFC] Rebasing merges: a jorney to the ultimate solution(RoadClear)
- From
Johannes Schindelin <johannes.schindelin@gmx.de>
- Date
- Mar 11, 2018, 12:00 UTC
- Message-ID
- <nycvar.QRO.7.76.6.1803111256410.20700@ZVAVAG-6OXH6DA.rhebcr.pbec.zvpebfbsg.pbz>
- In-Reply-To
- <29bc6661-1d78-8f89-194e-1dcc9d88c34e@gmail.com>
Hi Buga,
On Thu, 8 Mar 2018, Igor Djordjevic wrote:
Show 20 quoted lines
> On 08/03/2018 13:16, Phillip Wood wrote: > > > > > I did wonder about using 'pick <original-merge>' for rebasing merges > > > and keeping 'merge ...' for recreating them but I'm not sure if that > > > is a good idea. It has the advantage that the user cannot specify > > > the wrong parents for the merge to be rebased as 'git rebase' would > > > work out if the parents have been rebased, but maybe it's a bit > > > magical to use pick for merge commits. Also there isn't such a > > > simple way for the user to go from 'rabase this merge' to 'recreate > > > this merge' as they'd have to write the whole merge line themselves > > > (though I guess something like emacs' git-rebase.el would be able to > > > help with that) > > > > Scrub that, it is too magical and I don't think it would work with > > rearranged commits - it's making the --preserve-merges mistake all > > over again. It's a shame to have 'merge' mean 'recreate the merge' and > > 'rebase the merge' but I don't think there is an easy way round that. > > I actually like `pick` for _rebasing_ merge commits, as `pick` is > already used for rebasing non-merge commits, too, so it feels natural.
Phillip is right, though: this would repeat the design mistake of --preserve-merges.
We must not forget that the interactive mode is the target here, and that the syntax (as well as the generated todo list) must allow for easy modification. The `pick <merge>` approach does not allow that, so we cannot use it.
The `merge -R -C <original-commit> <merge-head>` approach is a lot better: it offers the flexibility, without sacrificing the ease when not modifying the todo list.
Ciao, Dscho