2

我正在尝试使用具有最高压缩级别 (9) 的 gzip 对分支进行 git 归档,但它似乎没有在该级别进行压缩。这是我的命令:

git -C /home/user/example.com/ archive --format tar -o /home/user/site_backups/develop-`date +%Y-%m-%dT%H%M`.tar develop | gzip -9

它会创建 tar 文件,但与使用以下命令压缩为 86MB 的 zip 文件相比,它的大小超过 100MB:

git -C /home/user/example.com/ archive --format zip -o /home/user/site_backups/develop-`date +%Y-%m-%dT%H%M`.zip develop

输出文件可以压缩更多吗?我究竟做错了什么?

4

1 回答 1

1

如今(4 年后),命令将是:

git -C /home/user/example.com/ archive --format tgz -19 -o /home/user/site_backups/develop-`date +%Y-%m-%dT%H%M`.tar develop

在 Git 2.30(2021 年第一季度)中,“ git archiveman现在在生成 tar.gz 输出时允许压缩级别高于“-9”。

请参阅René Scharfe ( ) 的commit cde8ea9(2020 年 11 月 9 日(由Junio C Hamano 合并 -- --ede4d63 提交中,2020 年 11 月 18 日)rscharfe
gitster

archive: 支持超过 9 的压缩级别

签字人:René Scharfe

压缩程序如zip、和允许使用数字选项调整 CPU 成本和大小增益之间的权衡,以gzip实现快速压缩和高压缩比。 zip 也接受逐字存储文件。( man )直接支持 ZIP 输出的单位数压缩级别,并将它们传递给 gzip 等过滤器。bzip2xz-1-9
-0
git archive

Zstandard 还支持压缩级别选项-10至,-19或高达. 在大多数情况下,这似乎( man )一起使用,例如,它会生成一个没有抱怨的存档,但由于它只支持一位数压缩级别选项,因此它与 and相同。-22--ultra
git archive-19-1 -9-9

允许( man )接受多位数压缩级别以支持. 明确拒绝它们为 ZIP 格式,否则只会以有点神秘的“ ”失败。git archivezstd
deflateInit2()stream consistency error

于 2020-11-22T01:31:39.763 回答