【问题标题】:Is git archive output supposed to be bit-repeatable through git versions?git 归档输出是否应该通过 git 版本进行位重复?
【发布时间】:2020-01-27 12:42:18
【问题描述】:

我正在使用git archive 生成一个文件,该文件稍后会进行哈希处理,以便根据预存储的哈希值检查其完整性。但是,我没有看到任何地方 git archive 旨在实现位可重复性,因此我担心 git 本身、tar 或其他一些内部结构的任何未来更改可能会突然导致从同一存储库生成不同的存档。

我说得对,这不是git archive 的预期用途?或者我可以这样自信地使用它吗?

【问题讨论】:

    标签: git git-archive bit-representation


    【解决方案1】:

    这不是git archive 的预期功能。生成的 tar 存档之前已更改以修复错误。尽管如此,还是有一些人试图依赖这个,包括 kernel.org,但是当 Git 更新时他们的系统已经被破坏了。我强烈建议不要这样做。

    任何使用压缩的东西(包括 gzip 压缩的 tar 档案和 zip 文件)本质上是不可复制的,因为压缩可以在 zlib 或 gzip 版本之间酌情改变。

    【讨论】:

    • 您对kernel.org遇到的问题有什么参考吗?我无法轻易找到并想阅读它。
    • 我现在无法在列表中找到关于它的线程,但它与补丁“归档:即使对于 pax 标头也能尊重 tar.umask”有关。我们确实恢复了该补丁,但之前和之后出现的其他补丁可能存在问题。
    • 我找到了这个:code.forksand.com/linux/git_git/commit/… 不多但很有趣,感谢您的精确指针
    猜你喜欢
    • 2014-03-28
    • 1970-01-01
    • 2018-02-26
    • 1970-01-01
    • 2011-01-22
    • 1970-01-01
    • 2013-01-15
    • 1970-01-01
    • 2011-03-18
    相关资源
    最近更新 更多