Re: [PATCH v3 1/6] t9001: non order-sensitive file comparison
- From
- Tom Russello <tom.russello@grenoble-inp.org>
- Date
- Jun 9, 2016, 08:15 UTC
- Message-ID
- <214976cd-3876-62ca-b931-338d7f0fd51c@grenoble-inp.org>
- In-Reply-To
- <vpqporqyko1.fsf@anie.imag.fr>
On 06/09/16 07:51, Matthieu Moy wrote:
Show 32 quoted lines
> Junio C Hamano <gitster@pobox.com> writes:
>
>> Tom Russello <tom.russello@grenoble-inp.org> writes:
>>
>>> +# Check if two files have the same content, non-order sensitive
>>> +test_cmp_noorder () {
>>> + sort $1 >$1;
>>
>> Here is what I think happens:
>>
>> 0) the shell parses this command line;
>> 1) the shell notices that the output has to go to $1;
>> 2) the shell does open(2) of $1,
>> 3) the shell spawns "sort" with a single argument, with its
>> output connected to the file descriptor obtained in 2).
>>
>> Because "$1" becomes an empty file at 2), "sort" reads nothing and
>> writes nothing.
>
> Tom: in case you're not convinced, try this:
>
> $ (echo b; echo a) >f
> $ sort f
> a
> b
> $ sort f >f
> $ cat f
> $
>
> Also, useless ';' and missing double-quotes around "$1" to avoid bad
> surprises ifever test_cmp_noorder is called on file names with special
> characters.I was totally convinced by Junio's explanation, it is partially fixed in v4 and will be entirely fixed in v5.
Thanks.