在msysgit 1.7.11的更改日志中,它表示:索引文件的实验性“版本4”格式是什么意思

时间:2012-07-24 17:41:39

标签: git msysgit

如标题所述,

他们的意思是什么:

  

引入了一个实验性的“版本4”格式的索引文件,以减少磁盘占用空间和I / O开销

更重要的是,是否存在失去与此更改的向后兼容性的风险,或者此更改是否会损坏存储库?

进行一些测试表明它是向后兼容的,并没有发现任何不利影响。

有人可以澄清一下msysgit 1.7.11的实际变化是什么吗?

1 个答案:

答案 0 :(得分:2)

这里没有兼容性问题(msysgit和git之间,或之前的Git版本),因为这是与git repo本身相同的修改(官方Git repo没有提到任何兼容性问题)。

git repo文件Documentation/technical/index-format.txt中查看有关GIT索引格式的信息:

  

(版本4)在版本4中,输入路径名称是前缀压缩的       相对于前一个条目的路径名(第一个       对条目进行编码,就好像前一个条目的路径名是       空字符串)。
  在条目的开头,在整数N中       可变宽度编码(与偏移相同的编码被编码       对于OFS_DELTA包条目;随后存储了pack-format.txt)       由NUL终止的字符串S   从前一个条目的路径名末尾删除N个字节,并将其替换为字符串S,即可生成此条目的路径名。

     

1-8个nul字节,根据需要将条目填充为八个字节的倍数     同时保持名称NUL终止。

     

(版本4)在版本4中,路径名后面的填充没有     存在。

所以这实际上是 index 条目的内部管理,它不会阻止git(1.7.11或任何其他版本)克隆/读取远程回购。
它的目的只是优化“入口路径名称”表示。