Subject: Re: [PATCH] docs: Clarify what git-rebase's "--preserve-merges" does

From: Junio C Hamano <[email-masked]>
Date: Mon, 30 Mar 2015 12:58:52 -0700

Sebastian Schuberth <[email-masked]> writes:

>> That is, at least to me,
>>
>>          D---E---F
>>         /         \
>>     ---A---B---C---G---H
>>
>> the former, i.e. "the changes the merge G introdues", is "diff C G",
>
> To me, too. In other words, this is the combined diff of all commits
> reachable from all parents of the merge (other than the first parent).
> In your example, that would be the combined diff of D, E and F, which
> equals "git diff C G".
>
>> while "merge commit was skipped" would mean a history like this:
>>
>>     ---A---B---C---D'--E'--F'--H'
>>
>
> This is where your interpretation differs.

I know.  If I am rebasing this whole graph on top of somewhere while
ignoring merge G:

>>          D---E---F
>>         /         \
>>     ---A---B---C---G---H

I'll expect changes made by A, B, C, D, E, F and H appear as
different commits in the result.  That is what "ignore G" means to
me.

But it is pointless for you to say "Your attempt to misunderstand
the current and proposed text is flawed".  People are flawed and I
am merely pointing out that what you wrote can be read by people
other than you in a way you did not mean to.

And my response was an attempt to offer a suggestion to make it
harder to be misread by anybody.

> Ignoring a merge sounds like dropping the merge commit and all side
> branches it merges from history.

... Yes to _some_ people (including you, but not me).  And that is
why we are trying to improve the text in the documentation, no?