threads / discuss / 32055

t9350-fast-export.sh broken on peff/pu under Mac OS X

Subject: t9350-fast-export.sh broken on peff/pu under Mac OS X

## tl;dr

7 messages between Nov 10, 2012 and Nov 11, 2012.

replies: 6people: 4as markdown or json

Torsten Bögershausen· Nov 10, 2012, 14:37 UTC · lore

The short version: echo -n doesn't seem to be portable. The following works for me:

(And is this a typo: test_expect_success 'test biridectionality' ')
/Torsten
 diff ../../git.peff/t/t9350-fast-export.sh t9350-fast-export.sh
444,445c444,445
<       echo -n > marks-cur &&
<       echo -n > marks-new &&
---
>       > marks-cur &&
>       > marks-new &&

464c464 < echo -n > tmp-marks && ---

>       > tmp-marks &&

474c474 < echo -n > expected && ---

>       > expected &&
Felipe Contreras· Nov 10, 2012, 19:17 UTC · re: Torsten Bögershausen · lore

Re: t9350-fast-export.sh broken on peff/pu under Mac OS X

On Sat, Nov 10, 2012 at 3:37 PM, Torsten Bögershausen <tboegi@web.de> wrote:
> The short version:
> echo -n doesn't seem to be portable.
> The following works for me:
Right, I was supposed to change that to:
  true > marks-cur &&
I don't think the code below works everywhere.
> (And is this a typo: test_expect_success 'test biridectionality' ')
Right, thanks.
>  diff ../../git.peff/t/t9350-fast-export.sh t9350-fast-export.sh
Please use diff -u, I think everybody is more familiar with that.
Cheers.
-- 
Felipe Contreras
Junio C Hamano· Nov 10, 2012, 22:39 UTC · re: Felipe Contreras · lore

Re: t9350-fast-export.sh broken on peff/pu under Mac OS X

Felipe Contreras <felipe.contreras@gmail.com> writes:
Show 8 quoted lines
> On Sat, Nov 10, 2012 at 3:37 PM, Torsten Bögershausen <tboegi@web.de> wrote:
>> The short version:
>> echo -n doesn't seem to be portable.
>> The following works for me:
>
> Right, I was supposed to change that to:
>
>   true > marks-cur &&
Please make it like so:
	>marks-cur &&

No command is necessary when creating an empty file or truncating an existing file to empty, and no SP between redirection and its target.

Felipe Contreras· Nov 10, 2012, 23:11 UTC · re: Junio C Hamano · lore

Re: t9350-fast-export.sh broken on peff/pu under Mac OS X

On Sat, Nov 10, 2012 at 11:39 PM, Junio C Hamano <gitster@pobox.com> wrote:
Show 17 quoted lines
> Felipe Contreras <felipe.contreras@gmail.com> writes:
>
>> On Sat, Nov 10, 2012 at 3:37 PM, Torsten Bögershausen <tboegi@web.de> wrote:
>>> The short version:
>>> echo -n doesn't seem to be portable.
>>> The following works for me:
>>
>> Right, I was supposed to change that to:
>>
>>   true > marks-cur &&
>
> Please make it like so:
>
>         >marks-cur &&
>
> No command is necessary when creating an empty file or truncating an
> existing file to empty, and no SP between redirection and its target.
That hangs on zsh (presumably waiting for stdin).
-- 
Felipe Contreras
Stefano Lattarini· Nov 11, 2012, 00:19 UTC · re: Felipe Contreras · lore

Re: t9350-fast-export.sh broken on peff/pu under Mac OS X

On 11/11/2012 12:11 AM, Felipe Contreras wrote:
Show 21 quoted lines
> On Sat, Nov 10, 2012 at 11:39 PM, Junio C Hamano <gitster@pobox.com> wrote:
>> Felipe Contreras <felipe.contreras@gmail.com> writes:
>>
>>> On Sat, Nov 10, 2012 at 3:37 PM, Torsten Bögershausen <tboegi@web.de> wrote:
>>>> The short version:
>>>> echo -n doesn't seem to be portable.
>>>> The following works for me:
>>>
>>> Right, I was supposed to change that to:
>>>
>>>   true > marks-cur &&
>>
>> Please make it like so:
>>
>>         >marks-cur &&
>>
>> No command is necessary when creating an empty file or truncating an
>> existing file to empty, and no SP between redirection and its target.
> 
> That hangs on zsh (presumably waiting for stdin).
>
Unless you set:
    NULLCMD=:
early in your test script.

Or, to be extra-safe, you could steal this initialization code from autoconf:

    # Be more Bourne compatible.
    if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
      emulate sh
      NULLCMD=:
      setopt NO_GLOB_SUBST
      # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
      # is contrary to our usage.  Disable this feature.
      alias -g '${1+"$@"}'='"$@"'
    else
      case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac
    fi
All of this untested with the real Git testsuite, of course ;-)
Regards, and HTH,
  Stefano
Felipe Contreras· Nov 11, 2012, 00:58 UTC · re: Stefano Lattarini · lore

Re: t9350-fast-export.sh broken on peff/pu under Mac OS X

On Sun, Nov 11, 2012 at 1:19 AM, Stefano Lattarini <stefano.lattarini@gmail.com> wrote:

Show 39 quoted lines
> On 11/11/2012 12:11 AM, Felipe Contreras wrote:
>> On Sat, Nov 10, 2012 at 11:39 PM, Junio C Hamano <gitster@pobox.com> wrote:
>>> Felipe Contreras <felipe.contreras@gmail.com> writes:
>>>
>>>> On Sat, Nov 10, 2012 at 3:37 PM, Torsten Bögershausen <tboegi@web.de> wrote:
>>>>> The short version:
>>>>> echo -n doesn't seem to be portable.
>>>>> The following works for me:
>>>>
>>>> Right, I was supposed to change that to:
>>>>
>>>>   true > marks-cur &&
>>>
>>> Please make it like so:
>>>
>>>         >marks-cur &&
>>>
>>> No command is necessary when creating an empty file or truncating an
>>> existing file to empty, and no SP between redirection and its target.
>>
>> That hangs on zsh (presumably waiting for stdin).
>>
> Unless you set:
>
>     NULLCMD=:
>
> early in your test script.
>
> Or, to be extra-safe, you could steal this initialization code from
> autoconf:
>
>     # Be more Bourne compatible.
>     if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
>       emulate sh
>       NULLCMD=:
>       setopt NO_GLOB_SUBST
>       # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
>       # is contrary to our usage.  Disable this feature.
>       alias -g '${1+"$@"}'='"$@"'
It doesn't seem like zsh listens to that variable in sh mode:
% zsh -c 'emulate sh; NULLCMD=foobar; > content'
And it doesn't seem like NO_GLOB_SUBST is needed any more.
I think it doesn't hurt to do 'true > marks-cur', but whatever.
Cheers.
-- 
Felipe Contreras
Stefano Lattarini· Nov 11, 2012, 09:32 UTC · re: Felipe Contreras · lore

Re: t9350-fast-export.sh broken on peff/pu under Mac OS X

On 11/11/2012 01:58 AM, Felipe Contreras wrote:
>
> It doesn't seem like zsh listens to that variable in sh mode:
>   $ zsh -c 'emulate sh; NULLCMD=foobar; > content'
>

Right; "emulate sh" by itself is probably enough today (autoconf, trying to make its generated scripts extra-portable, tends to accumulate a lot of cruft unfortunately).

Thanks,
  Stefano

← back to recent threads