- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
在我的 repo 上运行 git fsck
,我得到这个输出:
$ git fsck
Checking object directories: 100% (256/256), done.
warning in tree bde551ba2d6882ac7614c25305c24ddc1c75b1c4: contains zero-padded file modes
warning in tree 7cac28aefa67ff63e5ca163de382a3e08b8a7ba5: contains zero-padded file modes
warning in tree c24803abe783decd96c1dbf05d3ac45dbf3ff372: contains zero-padded file modes
warning in tree 51393697adb908ddb5fac540a86ea5a331fc1da5: contains zero-padded file modes
Checking objects: 100% (40275/40275), done.
我应该担心这些警告吗?他们会损坏我的存储库吗?
最佳答案
它不会完全破坏 repo,但它很可疑。零填充文件模式的测试早在 2005 年就开始了:
commit 64071805eda2b57d2b77943bb3f9865d90562ecf
Author: Linus Torvalds <torvalds@g5.osdl.org>
Date: Wed Jul 27 16:08:43 2005 -0700
git-fsck-cache: be stricter about "tree" objects
In particular, warn about things like zero-padding of the mode bits,
which is a big no-no, since it makes otherwise identical trees have
different representations (and thus different SHA1 numbers).
Also make the warnings more regular.
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
不同的 SHA1 值将使 git 相信“树 A”与“树 B”不同,即使它们在所有重要方面都相同(相同的文件和模式,除了一个中的前导零) ,这将使 repo 略大于必要。此外,两个实际上相同的提交(例如,通过重播补丁创建)看起来是不同的。我不知道有什么会因此出错,但它可能会混淆各种操作(他们“期望”找到差异,但后来找不到)并且随着时间的推移它可能使存储库膨胀。
另外两个有趣的问题:(1) 如何解决这个问题?我怀疑使用 git filter-branch
可以修复它(通过重放提交以获得“正确的”树对象),但你必须弄清楚哪个分支包含包含这些树的提交,并且还必须清除引用坏树对象的“坏”提交。 (当然,这会给克隆存储库的任何人带来各种痛苦。)(2)这首先是如何发生的?
虽然 git cat-file -p
添加了前导零,但看看 git cat-file
为这些树打印了什么会很有趣,所以这有点痛苦. (git cat-file tree bde551ba2d6882ac7614c25305c24ddc1c75b1c4
转储原始内容,但它们充满了二进制位。仍然可以查看,只需要使用处理二进制内容的东西。)
关于git - 我应该担心 `git fsck` 警告 : "contains zero-padded file modes",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15598465/
我刚刚开始使用 data-* 属性来存储查看所需的自定义属性和值。例如 。 基于data-*我正在做一些操作(CRUD)。如果用户在客户端更改 data-* 属性值(即使用 firebug 和其他
我想知道是否有人可以指出正确的方向。我最近开始使用 LinqToSQL 并喜欢强类型数据对象等。 我只是在努力了解对数据库性能等的影响。例如,假设我正在开发一个简单的用户配置文件页面。该页面显示有关用
我正在开发一个有文本区域的 Angular 应用程序。此文本区域的内容随后用于填充输入文本的预览。所有这些都在客户端完成。我担心有人能够将代码注入(inject)我的应用程序,例如 /*So
我在一台机器上运行 CDH 5.6(Hadoop 2.6,HBase 1.0.0)。只有 Hadoop 和 HBase 在运行。 Hadoop 配置为复制因子 1,Hbase 运行在 HDFS 之上,
在 SO 和其他地方,如果没有人礼貌地指出最好使用参数化输入和存储过程,几乎不可能在示例代码中发布长连接的 SQL 指令。 最近的示例 here . 但是担心 Winforms 项目中的 SQL 注入
未受攻击的计算机上的 Web 应用程序在不安全的 WiFi 环境中容易受到 XSS、CRSF、sql 注入(inject)攻击和 cookie 窃取。 为了防止这些安全问题,有以下补救措施 sql注入
我在一个执行数值计算的库上工作了一段时间。它是用纯原生 C++ 编写的,直到现在我一直在使用简单的控制台应用程序来测试它的功能。 是时候在库的顶部构建一个 GUI - 以更好地显示结果表并以图形形式呈
我是一名优秀的程序员,十分优秀!