Message ID | pull.56.git.gitgitgadget@gmail.com (mailing list archive) |
---|---|
Headers | show |
Series | Demonstrate and fix a rebase --autostash bug with dirty submodules | expand |
On Tue, Oct 23 2018, Johannes Schindelin via GitGitGadget wrote: > Johannes Schindelin (2): > rebase --autostash: demonstrate a problem with dirty submodules > rebase --autostash: fix issue with dirty submodules > > builtin/rebase.c | 2 +- > t/t3420-rebase-autostash.sh | 10 ++++++++++ > 2 files changed, 11 insertions(+), 1 deletion(-) There's another bug with rebase.autoStash in master (and next/pu) but not v2.19.0. I tried to bisect bit it just comes down to 5541bd5b8f ("rebase: default to using the builtin rebase", 2018-08-08). Credit to a co-worker of mine who wishes to remain anonymous for discovering this. I narrowed down his test-case to (any repo will do): ( rm -rf /tmp/todo && git clone --single-branch --no-tags --branch=todo https://github.com/git/git.git /tmp/todo && cd /tmp/todo && rm Make && git rev-parse --abbrev-ref HEAD && git -c rebase.autoStash=true -c pull.rebase=true pull && if test $(git rev-parse --abbrev-ref HEAD) != 'todo' then echo 'On detached head!' && git status && exit 1 else echo 'We are still on our todo branch!' fi )
On Tue, Nov 06, 2018 at 02:59:43PM +0100, Ævar Arnfjörð Bjarmason wrote: > > On Tue, Oct 23 2018, Johannes Schindelin via GitGitGadget wrote: > > > Johannes Schindelin (2): > > rebase --autostash: demonstrate a problem with dirty submodules > > rebase --autostash: fix issue with dirty submodules > > > > builtin/rebase.c | 2 +- > > t/t3420-rebase-autostash.sh | 10 ++++++++++ > > 2 files changed, 11 insertions(+), 1 deletion(-) > > There's another bug with rebase.autoStash in master (and next/pu) but > not v2.19.0. I tried to bisect bit it just comes down to 5541bd5b8f > ("rebase: default to using the builtin rebase", 2018-08-08). That's just flipping the config default. If you add "-c rebase.usebuiltin=true" to your invocation here: > git -c rebase.autoStash=true -c pull.rebase=true pull && you can bisect further. However, the results weren't super useful, as I had to skip a bunch of commits (ones that did die("TODO") or just complained that the working tree wasn't clean; if you treat the latter as "bad", then it just bisects to e0333e5c63 (builtin rebase: require a clean worktree, 2018-09-04). -Peff
Hi Ævar, On Tue, 6 Nov 2018, Ævar Arnfjörð Bjarmason wrote: > > On Tue, Oct 23 2018, Johannes Schindelin via GitGitGadget wrote: > > > Johannes Schindelin (2): > > rebase --autostash: demonstrate a problem with dirty submodules > > rebase --autostash: fix issue with dirty submodules > > > > builtin/rebase.c | 2 +- > > t/t3420-rebase-autostash.sh | 10 ++++++++++ > > 2 files changed, 11 insertions(+), 1 deletion(-) > > There's another bug with rebase.autoStash in master (and next/pu) but > not v2.19.0. I tried to bisect bit it just comes down to 5541bd5b8f > ("rebase: default to using the builtin rebase", 2018-08-08). > > Credit to a co-worker of mine who wishes to remain anonymous for > discovering this. I narrowed down his test-case to (any repo will do): > > ( > rm -rf /tmp/todo && > git clone --single-branch --no-tags --branch=todo https://github.com/git/git.git /tmp/todo && > cd /tmp/todo && > rm Make && > git rev-parse --abbrev-ref HEAD && > git -c rebase.autoStash=true -c pull.rebase=true pull && > if test $(git rev-parse --abbrev-ref HEAD) != 'todo' > then > echo 'On detached head!' && > git status && > exit 1 > else > echo 'We are still on our todo branch!' > fi > ) I found the culprit. Patch forthcoming, Dscho