Thread (41 messages) flat view 41 messages, 6 authors, 2018-03-26

Re: [RFC] Rebasing merges: a jorney to the ultimate solution(RoadClear)

From: Johannes Schindelin <hidden>
Date: 2018-03-11 12:00:31

Hi Buga,

On Thu, 8 Mar 2018, Igor Djordjevic wrote:
On 08/03/2018 13:16, Phillip Wood wrote:
quoted
quoted
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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help