Git 2.45版本发布了,带来了对reftable的实验性支持和SHA-256的互操作性。 这是一个开源项目,由超过96位贡献者共同完成,其中38位是新贡献者。自从2.44版本发布以来,这是我们第一次跟大家分享Git的最新动态。
在这个版本中,Git引入了名为“reftable”的新引用存储后端,它承诺为拥有任意数量引用的仓库提供更快的查找、读取和写入速度。
当我们谈论Git中的引用时,我们指的是组成你的仓库的分支和标签。简而言之,引用就是一个名称(如refs/heads/my-feature或refs/tags/v1.0.0)以及该引用所指向的对象ID。
reftable是一种全新的存储Git引用的格式。与存储松散引用或不断更新大型packed_refs文件不同,reftable实现了一种二进制格式,用于存储引用,旨在实现:
空间最小化:通过前缀压缩存储引用名称,占用最小空间。
快速查找:即使是从冷缓存中读取.ref文件,也能支持快速查找。
最重要的是,reftable格式支持多个*.ref文件,这意味着每次引用更新事务都可以单独处理,无需修改现有的*.ref文件。一个单独的压缩过程描述了如何将一系列相邻的*.ref文件“合并”成一个单独的*.ref文件,以保持读取性能。
Git 2.45还引入了对SHA-1和SHA-256之间有限互操作性的实验性初步支持。 Git 2.45引入了一个新概念,称为“兼容性”对象格式,并允许你通过给定的哈希或“兼容性”哈希来引用对象。