Re: zip files created with git archive flags text files as binaries

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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é

--
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




[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]