Show 12 quoted lines
> Am 01.08.2011 22:48, schrieb René Scharfe:
>> So git archive gives the right results when writing to a pipe, but
>> always the same wrong result when writing directly to a file.
>
> This could indeed be a CRLF issue. archive-tar.c runs gzip to let it
> write to the original fd 1 (stdout). gzip is an MSYS program, and MSYS
> is "clever" and sets up the channel in text mode (CRLF conversion) if it
> is a regular file, but in binary mode if it is a pipe.
>
> Without the gzip filter, git-archive writes to stdout itself. Since we
> have set up all our channels in binary mode, we do not suffer from the
> same problem for plain tar format.
That seems to be it indeed:
$ git config tar.t.command 'tar tf -'
$ git archive --format=t v1.7.6 >a.t
$ git archive --format=t v1.7.6 | cat >b.t
$ diff -b a.t b.t | wc -l
0
$ md5sum <a.t
8026ba48963ec4f849ae863f822bccbc *-
$ md5sum <b.t
7bcaa37bfcc47b1ae535369ae0399d90 *-
$ sed 's/\r//' <a.t | md5sum
7bcaa37bfcc47b1ae535369ae0399d90 *-
René