On Mon, Apr 01, 2019 at 01:51:57PM -0700, Denton Liu wrote: > Signed-off-by: Denton Liu <liu.denton@xxxxxxxxx> > --- > t/t3431-rebase-fork-point.sh | 53 ++++++++++++++++++++++++++++++++++++ > 1 file changed, 53 insertions(+) > create mode 100755 t/t3431-rebase-fork-point.sh > > diff --git a/t/t3431-rebase-fork-point.sh b/t/t3431-rebase-fork-point.sh > new file mode 100755 > index 0000000000..8e2483b73e > --- /dev/null > +++ b/t/t3431-rebase-fork-point.sh > @@ -0,0 +1,53 @@ > +#!/bin/sh > +# > +# Copyright (c) 2019 Denton Liu > +# > + > +test_description='git rebase --fork-point test' > + > +. ./test-lib.sh > + > +# A---B---D---E (master) > +# \ > +# C*---F---G (side) > +# > +# C was formerly part of master but is side out > +# > +test_expect_success setup ' > + test_commit A && > + test_commit B && > + test_commit C && > + git branch -t side && > + git reset --hard HEAD^ && > + test_commit D && > + test_commit E && > + git checkout side && > + test_commit F && > + test_commit G > +' > + > +test_rebase() { > + expected="$1" && > + shift && > + test_expect_success "git rebase $@" " > + git checkout master && > + git reset --hard E && > + git checkout side && > + git reset --hard G && > + git rebase $@ && > + test_write_lines $expected >expect && > + git log --pretty=%s >actual && > + test_cmp expect actual > + " > +} > + > +test_rebase 'G F E D B A' '' It appears that this last empty argument triggers some bug in Bash v4.2 and older (and on macOS such an old Bash is the default /bin/sh), as it turns that empty argument into something else, which in turn fails the test with: <...> ++ git rebase $'\177' fatal: invalid upstream '?' error: last command exited with $?=128 not ok 2 - git rebase https://travis-ci.org/git/git/jobs/516070862#L2276 Omitting that empty argument avoids this issue, and the test still checks what it was supposed to. > +test_rebase 'G F D B A' '--onto D' > +test_rebase 'G F C E D B A' '--no-fork-point' > +test_rebase 'G F C D B A' '--no-fork-point --onto D' > +test_rebase 'G F E D B A' '--fork-point refs/heads/master' > +test_rebase 'G F D B A' '--fork-point --onto D refs/heads/master' > +test_rebase 'G F C E D B A' 'refs/heads/master' > +test_rebase 'G F C D B A' '--onto D refs/heads/master' > + > +test_done > -- > 2.21.0.695.gaf8658f249 >