On 06/09/16 07:51, Matthieu Moy wrote: > Junio C Hamano <gitster@xxxxxxxxx> writes: > >> Tom Russello <tom.russello@xxxxxxxxxxxxxxxx> 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. -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html