Re: Rebase-via-merge behavior difference between Linux and Windows
- From
Bryan Turner <bturner@atlassian.com>
- Date
- Apr 2, 2020, 01:15 UTC
- Message-ID
- <CAGyf7-FTNOgDbWEoniaOWueWGXwH6=0gj_FzDqP35422vxhYEA@mail.gmail.com>
- In-Reply-To
- <CABPp-BFDx2j5Kf584Myb6wuEq5G7wbogJ2vos8OTDsh+ySfk8w@mail.gmail.com>
On Tue, Mar 31, 2020 at 11:35 PM Elijah Newren <newren@gmail.com> wrote:
Show 29 quoted lines
> > On Tue, Mar 31, 2020 at 4:25 PM Bryan Turner <bturner@atlassian.com> wrote: > > > > Using our merge test repository[1], one such test performs the following steps: > > * Unzip bare repository > > * `git clone --shared -b branch_that_differ_by_empty_commit_trgt > > <unzipped> rebase-test` > > * `git rebase -q --no-verify 7549846524f8aed2bd1c0249993ae1bf9d3c9998 > > 298924b8c403240eaf89dcda0cce7271620ab2f6` > > > > 298924b8c40 is an empty commit (i.e. `git commit --allow-empty`), and > > is the only commit not already reachable from 7549846524f. > > > > On Linux, when this test completes, "HEAD" in "rebase-test" is > > 7549846524f because the empty commit was discarded. This is the > > expected behavior. On Windows, "HEAD" is a new empty commit, which > > causes our test to fail. > > I don't have a Windows box to test, but it's good that you are seeing > the correct behavior there. I do have a Linux box, and cannot > duplicate the behavior you state, even downloading the zip you > mentioned and following your steps to reproduce. Actually, I did > reproduce that behavior the first time because I was accidentally > using git-2.25.0. But with git-2.26.0 on Linux, I see a new empty > commit after rebasing, as expected. > > Is there any chance you accidentally ran with an older git version > when on Linux? If you really were using git 2.26.0 on Linux...then > I'm totally confused at how you got that behavior.
I went back through our build logs and confirmed that we _are_ running Git 2.26 (phew). I then set up a local Git 2.26 environment and...it produced the same new behavior as 2.26 on Windows (so the correct behavior, per the documented changes).
At that point I dug further into our builds and found that while we were using the right Git version, we _weren't_ running all the same tests on Linux and Windows. So the successful build on Linux was not because the tests pass--I've adjusted the builds and confirmed that the tests _don't_ pass--but rather because the relevant tests weren't being run at all.
Very sorry for wasting your time, Elijah. I should have looked into our builds more closely to verify they were running the same tests before I took the question to the list.
Best regards, Bryan Turner