Hi Hannes & Denton,
On Fri, 5 Apr 2019, Johannes Sixt wrote:
> Am 05.04.19 um 19:25 schrieb Denton Liu:
> > On Fri, Apr 05, 2019 at 04:55:37PM +0200, Johannes Schindelin wrote:
> >> On Mon, 1 Apr 2019, Denton Liu wrote:
> >>> +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 $@ &&
> >>
> >> I think we need this patch, to make the macOS build happy:
Actually, my patch did not even fix the build, I looked at the wrong
(succeeding) build, sorry for the noise.
> > Thanks for digging into this, both.
> >
> > Out of curiosity, t3432 is written similarly:
> >
> > test_rebase_same_head() {
> > status="$1" &&
> > shift &&
> > test_expect_$status "git rebase $@ with $changes is no-op" "
> > oldhead=\$(git rev-parse HEAD) &&
> > test_when_finished 'git reset --hard \$oldhead' &&
> > git rebase $@ &&
> > newhead=\$(git rev-parse HEAD) &&
> > test_cmp_rev \$oldhead \$newhead
> > "
> > }
That is curious, indeed!
> Using $@ in these expansions is wrong. You do not want to forward an
> argument list, but you want to construct a command line. $* is correct
> here. Then you can remove the single-quotes at the invocation, like so:
>
> test_rebase_same_head success
> test_rebase_same_head success --onto B B
>
> Function test_rebase() could be done in the same way, but the first
> argument, expected, still needs quotes at the call site, of course.
That's a good idea, let me run with it.
Ciao,
Dscho