网站搜索

Git 2.48 发布更快的 SHA-1,介子登上舞台


Git 2.48 分布式修订控制工具提供 Meson 构建系统支持、更快的 SHA-1、无内存泄漏测试等。

Git 是一个分布式版本控制系统和软件开发的基础工具,可帮助开发人员有效地管理多个项目中的代码更改,它刚刚发布了新的 2.48 版本。

此更新的突出成就之一是加快了严格用于校验和的 SHA-1 计算。有鉴于此,GitHub 的早期基准测试表明,所有存储库的克隆作性能提高了 10-13%。

如果您想亲自查看这个新功能,请尝试使用构建时选项(如 “make OPENSSL_SHA1_UNSAFE=1”)编译 Git。

经常比较变基提交序列的开发人员可能已经知道 Git 的 range-diff 命令有多方便。同时,--remerge-diff 可以更轻松地检查合并冲突的解决方式。

Git 2.48 代表了这两个功能第一次结合在一起:现在,你可以将 --remerge-diff 提供给 range-diff,不仅可以在线性提交中查看更改,还可以在通过 --rebase-merges 调整的合并提交中查看更改。

此外,作为一个有用的副作用,一个长期存在的 --remerge-diff 错误已经被修复。此修复使 git log --remerge-diff 等工具能够更可靠地工作,即使你使用更改提交遍历顺序的选项(例如 --reverse)。

现在说到一件非常有趣的事情 —— 近二十年来,Git 的默认构建过程一直以 GNU Make 为中心。然而,根据开发人员的说法,多年来,这个 Makefile 的大小和复杂性都大大增加。为了应对这一挑战,并使 Git 对新贡献者友好,Git 2.48 引入了 Meson 作为替代构建系统。

部分克隆(为帮助用户处理大型存储库而引入)在此版本中也得到了适当的关注。值得注意的是,开发人员修复了一个无限循环错误,并改进了 Git 处理 propromiseor 引用的方式,以避免在 git gc 后意外破坏存储库。

最后但并非最不重要的一点是,Git 2.48 允许更可靠地跟踪远程的默认分支。如果你曾经克隆过一个仓库,并想知道为什么后续的获取没有更新你的本地 “refs/remotes/origin/HEAD” 来匹配远程的默认分支,那么 Git 2.48 有一些好消息。

从现在开始,如果这个符号引用在你的本地端缺失,但在远程端设置了它,Git 将更新它。此外,您可以使用 “remote.origin.followRemoteHead” 配置进一步管理此功能。将其设置为 “warn” 或 “always” 将产生警告或自动与远程的默认分支同步。

有关 Git 2.48 中所有更改和新颖性的更多详细信息,请访问完整的更新日志。