"John Cai via GitGitGadget" <gitgitgadget@xxxxxxxxx> writes: > diff --git a/t/t3400-rebase.sh b/t/t3400-rebase.sh > index 71b1735e1dd..0b92e78976c 100755 > --- a/t/t3400-rebase.sh > +++ b/t/t3400-rebase.sh > @@ -437,4 +437,25 @@ test_expect_success 'rebase when inside worktree subdirectory' ' > ) > ' > > +test_expect_success 'rebase with oids' ' > + git init main-wt && > + ( > + cd main-wt && > + >file && > + git add file && > + git commit -m initial && > + git checkout -b side && > + echo >>file && > + git commit -a -m side && > + git checkout main && The above is sufficient set-up. > + git tag hold && > + git checkout -B main hold && These two are unnecessary. It was there in my bisect "runme" script only because I originally used an out-of-line repository that is prepared beforehand, so that "move main back to hold and rerun the rebase" can be done regardless of the bug in the previous version checked during "bisect run". > + git rev-parse main >pre && > + git rebase $(git rev-parse main) $(git rev-parse side) && > + git rev-parse main >post && > + test "$(git rev-parse side)" = "$(cat .git/HEAD)" && You may want to prepare for segfaulting "git rev-parse" in the above three lines. Never "cat .git/HEAD". use "git rev-parse". > + test_cmp pre post > + ) > +' > + > test_done > > base-commit: 1a4874565fa3b6668042216189551b98b4dc0b1b