From: Eugeniu Rosca <roscaeugeniu@gmail.com>
To: Elijah Newren <newren@gmail.com>
Cc: "Eugeniu Rosca" <erosca@de.adit-jv.com>,
"SZEDER Gábor" <szeder.dev@gmail.com>,
"Junio C Hamano" <gitster@pobox.com>, "Jeff King" <peff@peff.net>,
"Ævar Arnfjörð" <avarab@gmail.com>,
"Git Mailing List" <git@vger.kernel.org>,
"Eugeniu Rosca" <roscaeugeniu@gmail.com>
Subject: Re: Unreliable 'git rebase --onto'
Date: Fri, 10 Jan 2020 01:06:03 +0100 [thread overview]
Message-ID: <20200110000603.GA19040@erosca> (raw)
In-Reply-To: <CABPp-BFiDNb18m8geTCxKLXg0fOd0DS1dWRVWCfnTG0suwGRHg@mail.gmail.com>
Hi Elijah,
On Thu, Jan 09, 2020 at 10:05:52AM -0800, Elijah Newren wrote:
> On Thu, Jan 9, 2020 at 2:53 AM Eugeniu Rosca <erosca@de.adit-jv.com> wrote:
> > Some years ago I was hit by 'git merge' producing slightly different
> > results compared to 'git rebase --onto' and 'git cherry-pick A..B'
> > (maybe I can come up with a reproduction scenario for that too).
>
> If you can, I'd be interested to see it and take a look. I'd normally
> assume it was just some case where A..B included "evil" merge commits
> (merge commits that made additional changes not part of the actual
> merging) since rebasing or cherry-picking such a range would exclude
> the merge commits and thus drop those changes -- but you identified a
> real bug with the default rebase backend so I'm interested to see if
> you happen to have more bugs I should know about.
Here is a _simplified_ scenario to get a totally unexpected result from
'git merge' (initially reproduced years ago, but still happening on
2.25.0.rc2):
## Preparation
0. git --version
git version 2.25.0.rc2
1. git clone https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
2. git remote add linux-stable https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
3. git fetch linux-stable
# Reproduction
4. git checkout f7a8e38f07a1
5. git merge --no-edit e18da11fc0f959
## Merge v4.4.3 commit
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=e18da11fc0f959
which is a linux-stable backport of vanilla v4.5-rc1 commit
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=f7a8e38f07a1
the latter being checked out at step 4.
6. git show HEAD
## Inspect the _automatic_ conflict resolution performed by git in
drivers/mtd/nand/nand_base.c. Git decided to integrate e18da11fc0f959
alongside f7a8e38f07a1, while essentially they are the same commit.
We end up with two times commit f7a8e38f07a1.
What do you think about that?
> Unfortunately, you should note that git-2.25 is going to have the same
> bug you reported; there are still some loose ends with my series to
> make -m the default, and the 2.25 release is expected within a few
> days, so my change of default won't happen until 2.26. (That series
> would have needed to be completed several weeks ago for it to go into
> 2.25).
Thanks for this piece of information and for the time/effort spent!
--
Best Regards,
Eugeniu
next prev parent reply other threads:[~2020-01-10 0:08 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-01-08 21:43 Unreliable 'git rebase --onto' Eugeniu Rosca
2020-01-08 22:35 ` SZEDER Gábor
2020-01-09 0:55 ` Elijah Newren
2020-01-09 15:03 ` SZEDER Gábor
2020-01-09 17:53 ` Elijah Newren
2020-01-21 19:18 ` [PATCH v1] rebase -i: stop checking out the tip of the branch to rebase Alban Gruin
2020-01-21 20:07 ` Elijah Newren
2020-01-22 20:24 ` Junio C Hamano
2020-01-22 20:47 ` Junio C Hamano
2020-01-24 14:45 ` Alban Gruin
2020-01-24 14:45 ` [PATCH v2] " Alban Gruin
2020-01-24 14:55 ` Alban Gruin
2020-01-24 18:12 ` Junio C Hamano
2020-01-24 15:05 ` [PATCH v3] " Alban Gruin
2020-01-24 18:30 ` Junio C Hamano
2020-02-05 14:31 ` Johannes Schindelin
2020-01-24 17:11 ` [PATCH v2] " Andrei Rybak
2020-01-09 11:13 ` Unreliable 'git rebase --onto' Eugeniu Rosca
[not found] ` <CABPp-BHsyMOz+hi7EYoAnAWfzms7FRfwqCoarnu8H+vyDoN6SQ@mail.gmail.com>
2020-01-09 10:53 ` Eugeniu Rosca
2020-01-09 18:05 ` Elijah Newren
2020-01-10 0:06 ` Eugeniu Rosca [this message]
2020-01-10 2:35 ` Elijah Newren
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=20200110000603.GA19040@erosca \
--to=roscaeugeniu@gmail.com \
--cc=avarab@gmail.com \
--cc=erosca@de.adit-jv.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=newren@gmail.com \
--cc=peff@peff.net \
--cc=szeder.dev@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.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.