On Wed, Apr 20, 2022 at 2:46 PM Junio C Hamano <gitster@xxxxxxxxx> wrote: > > It is surprising that a basic and trivial bug was with us forever. I was also surprised. Like you, I dug through the mailing list archives and my impression was that the code review was mostly concerned about the case where there are multiple merge bases. No one seemed to have read the man page closely enough to notice that 'git rebase --keep-base <upstream> <branch>' cannot be equivalent to 'git rebase --onto <upstream>... <upstream>' because the latter doesn't have <branch> at all. Seeing that discrepancy is what prompted me to try out what actually happens when the branch is specified on the command line, and then I realized that it was more than just a documentation error. > > +test_expect_success 'rebase --keep-base main topic from main' ' > > + git reset --hard && > > Clearing whatever cruft the last test left is good, but ... > > > + git checkout topic && > > + git reset --hard G && > > + git checkout main && > > it would be more efficient to just do > > git checkout main && > git branch -f topic G && > > no? Instead of rewriting the working tree three times, you only > need to do so once here. Sure. I'll make that change. -Alex