From: René Scharfe Date: Mon, 01 Aug 2011 21:42:59 GMT Subject: Re: [PATCH v2 4/4] upload-archive: use start_command instead of fork Message-ID: <4E371DE3.3000008@lsrfire.ath.cx> In-Reply-To: <4E3718B4.6090803@kdbg.org> Am 01.08.2011 23:20, schrieb Johannes Sixt: > 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