Re: Bug with rebase and commit hashes
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Mar 10, 2022, 22:55 UTC
- Message-ID
- <xmqqsfrpbepd.fsf@gitster.g>
- In-Reply-To
- <C92B297B-0634-40CC-B1C6-B2A7325BF7DA@gmail.com>
John Cai <johncai86@gmail.com> writes:
Show 7 quoted lines
>> I hit this in production on git 2.30.2 (debian bullseye), but reproduced >> locally using the latest git main, which is git version 2.35.1.415.gc2162907. >> In both cases I wiped my user gitconfig, so I'm using only the defaults. (If >> it helps: with my rebase.autosquash = true, the bad case above does not behave >> badly and leaves me in detached head as I'd expect.) It's totally possible >> this isn't _meant_ to work, in which case I think the docs could use an >> update.
A quick bisect session leads us to 176f5d96 (built-in rebase --autostash: leave the current branch alone if possible, 2018-11-07), but I do not know how much commonality exists in the current code (read: we may well have inherited the bug from there, or we rewrote it completely away but reinvented the same bug in the current code).
with this test script dropped as t/x9999-c.sh --- >8 --- #!/bin/sh
test_description='rebase???'
. ./test-lib.sh
test_expect_success setup ' git init && >file && git add file && git commit -m initial && git checkout -b side && echo >>file && git commit -a -m side && git checkout master && git tag hold '
test_expect_success rebase ' git checkout -B master hold && git rev-parse master >pre && git rebase $(git rev-parse master) $(git rev-parse side) && git rev-parse master >post && test_cmp pre post '
test_done --- 8< ---
and this as "git bisect run ./runme.sh" script:
--- >8 --- #!/bin/sh
make -j16 NO_OPENSSL=Yes CFLAGS="-g -O" || exit 125 cd t && sh -v ./x9999-c.sh -i -v --- 8< ---
The NO_OPENSSL thing is there only because I started bisecting from an ancient version that no longer compiles out of the box in my environment.