2019-02-08 10:58:09

by Randall S. Becker

[permalink] [raw]
Subject: [Breakage] Git v2.21.0-rc0 - t5403 (NonStop)

Hi All,

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. I wonder I should provide this patch or whether the author would like to do so.

Thanks,
Randall



2019-02-08 10:58:01

by Johannes Schindelin

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

Hi Randall,

On Fri, 8 Feb 2019, Randall S. Becker wrote:

> 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. I wonder I should provide this patch or whether the
> author would like to do so.

It is the correct fix, you came up with it, why not simply provide a
patch yourself?

Thanks,
Dscho

2019-02-08 10:59:18

by Randall S. Becker

[permalink] [raw]
Subject: RE: [Breakage] Git v2.21.0-rc0 - t5403 (NonStop)

On February 8, 2019 5:56, Johannes Schindelin wrote:
> To: Randall S. Becker <[email protected]>
> Cc: 'Junio C Hamano' <[email protected]>; [email protected]; 'Linux
> Kernel' <[email protected]>; [email protected]
> Subject: Re: [Breakage] Git v2.21.0-rc0 - t5403 (NonStop)
>
> Hi Randall,
>
> On Fri, 8 Feb 2019, Randall S. Becker wrote:
>
> > 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. I wonder I should provide this patch or whether the
> > author would like to do so.
>
> It is the correct fix, you came up with it, why not simply provide a patch
> yourself?

Will do (later today)


2019-02-08 11:10:58

by SZEDER Gábor

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

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/[email protected]/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 ;)


2019-02-08 11:37:42

by Randall S. Becker

[permalink] [raw]
Subject: RE: [Breakage] Git v2.21.0-rc0 - t5403 (NonStop)

On February 8, 2019 6:10, SZEDER Gábor
> 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-
> [email protected]/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 ;)

+ Nguyen and Orgad

Thanks. Fix has been submitted as a patch. This is definitely a common one. ????


2019-02-08 20:13:51

by Todd Zullinger

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

SZEDER G?bor wrote:
> 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:
[...]
>> 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/[email protected]/T/#u

Indeed, I was surprised to see another one today.

It made me wonder how I had missed it in my own testing.
This one requires SHELL_PATH to be bash, while I only set
TEST_SHELL_PATH to bash for the improved -x tracing in the
fedora builds.

I ran the tests again with SHELL_PATH as bash on fedora and
this was the only failure I saw (other than the one from my
earlier message, that is).

--
Todd

2019-02-08 20:33:12

by SZEDER Gábor

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

On Fri, Feb 08, 2019 at 03:11:29PM -0500, Todd Zullinger wrote:
> It made me wonder how I had missed it in my own testing.
> This one requires SHELL_PATH to be bash, while I only set
> TEST_SHELL_PATH to bash for the improved -x tracing in the
> fedora builds.

Note that you don't need Bash to use '-x' tracing since a5bf824f3b (t:
prevent '-x' tracing from interfering with test helpers' stderr,
2018-02-25) and the followup commits, except for 't1510-repo-setup.sh'
(and even t1510 just falls back to ignore '-x' instead of causing
failures).