From: René Scharfe Date: Mon, 23 Feb 2015 19:30:44 GMT Subject: Re: zip files created with git archive flags text files as binaries Message-ID: <54EB7FE4.7070804@web.de> In-Reply-To: <12g5ss8uqwflv.dlg@nililand.de> Am 23.02.2015 um 14:58 schrieb Ulrike Fischer: > I'm using git on windows 7. > > $ git --version > git version 1.9.4.msysgit.0 Git's code for ZIP file creation hasn't changed since then. > Some days ago I uploaded a latex package to CTAN (www.ctan.org). > I created the zip-file with > > git archive --format=zip --prefix=citeall/ > --output=zip/citeall_2015-02-20.zip HEAD > > The zip contained four text files and a pdf. > > The CTAN maintainers informed me that all files in the zip are > flagged as binaries and this makes it difficult for them to process > them further (they want to correct line feeds of the text files: > http://mirror.ctan.org/tex-archive/help/ctan/CTAN-upload-addendum.html#crlf) I wouldn't have expected that this ZIP file attribute is actually used in the wild. > unzip -Z reports for my zip: > > $ unzip -Z citeall_2015_02_20.zip > Archive: citeall_2015_02_20.zip > Zip file size: 105509 bytes, number of entries: 6 > drwx--- 0.0 fat 0 bx stor 15-Feb-20 17:07 citeall/ > -rw---- 0.0 fat 458 bx defN 15-Feb-20 17:07 citeall/README > -rw---- 0.0 fat 102244 bx defN 15-Feb-20 17:07 > citeall/citeall.pdf > -rw---- 0.0 fat 3431 bx defN 15-Feb-20 17:07 > citeall/citeall.sty > -rw---- 0.0 fat 3971 bx defN 15-Feb-20 17:07 > citeall/citeall.tex > -rw---- 0.0 fat 557 bx defN 15-Feb-20 17:07 > citeall/examples-citeall.bib > 6 files, 110661 bytes uncompressed, 104669 bytes compressed: 5.4% > > The problem are all the "bx" entries. The "x" is due to the extra mtime header and unrelated to your issue. "b" (binary) is set unconditionally to ensure that line endings are kept intact by unpackers on all platforms. "fat" is used as lowest common denominator for regular files and directories; "unx" is used for symbolic links. > When I zip all the files with the standard windows zip-tool I get > this: > > $ unzip -Z citeall-win.zip > Archive: citeall-win.zip > Zip file size: 105275 bytes, number of entries: 5 > -rw---- 2.0 fat 102244 b- defN 15-Feb-20 17:07 > citeall/citeall.pdf > -rw---- 2.0 fat 3431 t- defN 15-Feb-20 17:07 > citeall/citeall.sty > -rw---- 2.0 fat 3971 t- defN 15-Feb-20 17:07 > citeall/citeall.tex > -rw---- 2.0 fat 557 t- defN 15-Feb-20 17:07 > citeall/examples-citeall.bib > -rw---- 2.0 fat 458 t- defN 15-Feb-20 17:07 citeall/README > 5 files, 110661 bytes uncompressed, 104675 bytes compressed: 5.4% > > Here the text files have a correct t flag. > > I don't know if it the problem exists also with zips created with > git archive on non-windows OS. Yes, git archive creates the same ZIP files everywhere. > Would it be possible to correct the zip-backend so that it flags > text files correctly? Or alternativly could one configure git > archive to use another zip programm? We would have to detect the line ending format (DOS, Unix, Macintosh, etc.) of each file, then set the attribute "t" (text) and the host system. The detection would slow down archive creation a bit and the resulting files would be different, of course, so this feature should only be enabled by a new command line option. I'll take a look. René