Re: [PATCH 4/4] t4200: avoid passing a non-newline terminated file to sed
On Thu, May 7, 2009 at 4:48 AM, Junio C Hamano <gitster@pobox.com> wrote:
Show 18 quoted lines
> Brandon Casey <casey@nrlssc.navy.mil> writes:
>
>> Some versions of sed exit non-zero if the file they are supplied is not
>> newline terminated. Solaris's /usr/xpg4/bin/sed is one such sed. So
>> rework this test to avoid doing so.
>
> I think up to your 3/4 is reasonable, but this is not enough for POSIX
> conformance (it is Ok if it is just aiming to fix "Solaris quirk"). POSIX
> sed is only required to work on text files, but .git/MERGE_RR is not a
> text file (it is a sequence of NUL terminated records).
>
> I think something like this may work better. Can somebody test?
>
>> - sha1=$(sed -e "s/ .*//" .git/MERGE_RR) &&
>> + sha1=$({ cat .git/MERGE_RR; echo; } | sed -e "s/ .*//") &&
>
> sha1=$(tr "\\000" "\\012" <./git/MERGE_RR | sed -e "s/ .*//") &&
>I would replace it again, according to e85fe4d8.
--
Duy