Re: [Breakage] Git v2.21.0-rc0 - t5403 (NonStop)

From: SZEDER GÃbor
Date: Fri Feb 08 2019 - 06:10:10 EST


On Fri, Feb 08, 2019 at 05:48:27AM -0500, Randall S. Becker wrote:
> We have a few new breakages on the NonStop port in 2.21.0-rc0. The first is in t5403, as below:
>
> /home/git/git/t/trash directory.t5403-post-checkout-hook/clone3/.git/hooks/post-checkout: line 2: $GIT_DIR/post-checkout.args: ambiguous redirect
> not ok 8 - post-checkout hook is triggered by clone
> #
> # mkdir -p templates/hooks &&
> # write_script templates/hooks/post-checkout <<-\EOF &&
> # echo "$@" >$GIT_DIR/post-checkout.args
> # EOF
> # git clone --template=templates . clone3 &&
> # test -f clone3/.git/post-checkout.args
> #
>
> The post-checkout hook is:
> #!/usr/local/bin/bash
> echo "$@" >$GIT_DIR/post-checkout.args
>
> This looks like it is a "bash thing" and $GIT_DIR might have to be in quotes, and is not be specific to the platform. If I replace
>
> echo "$@" >$GIT_DIR/post-checkout.args
>
> with
>
> echo "$@" >"$GIT_DIR/post-checkout.args"
>
> The test passes.

Wow, this is the second time this "redirection to a filename with
spaces under Bash" issue pops up today, see the other one here:

https://public-inbox.org/git/20190208031746.22683-2-tmz@xxxxxxxxx/T/#u

In short, Bash (when invoked as bash) doesn't conform to POSIX in this
respect; for a (too detailed) explanation see:

https://public-inbox.org/git/20180926121107.GH27036@localhost/

Even our CodingGuidelines suggest the use of quotes around the
redirection's target.

> I wonder I should provide this patch or whether the author would like to do so.

Well, since you didn't Cc the author, he might very well overlook this
issue, so I think you should ;)