Git 2.48:采用Meson构建系统现代化,修复内存泄漏

Git 2.48 版本更新总结

主要更新内容

1. 支持 Meson 构建系统

  • 背景: Git 2.48 引入了 Meson 构建系统,作为现有 Makefile、Autoconf 和 CMake 的现代替代方案。
  • 优势:

    • 用户友好的语法
    • 广泛的兼容性
    • 支持现代特性
    • 易于访问构建选项
  • 构建流程: 包括设置构建目录、编译、测试和安装,使用简单的命令即可完成。

2. 内存泄漏问题修复

  • 里程碑: Git 2.48 实现了完全无内存泄漏的目标。
  • 进展:

    • 之前 223 个测试文件存在内存泄漏
    • Git 2.47 减少了至 60 个
    • Git 2.48 完全修复
  • 要求: 除非有特殊理由,新测试默认必须无内存泄漏。

3. 捆绑 URI 的全面验证

  • 改进: 使用 fsck 机制对捆绑 URI 进行详细验证。
  • 优势: 提供基于严重程度的细粒度控制,提高了仓库的安全性和可用性。

4. 引用一致性检查

  • 进展: git-fsck 命令现在可以检测无效引用内容或指向不存在目标的符号引用。
  • 背景: 这些检查是 Google Summer of Code (GSoC) 2024 项目的一部分。

5. 社区讨论与反馈

  • 讨论平台: Lobster 和 Reddit 社区对 Git 2.48 的发布进行了讨论。
  • 关注点: Git 和 GitHub 仍然依赖 SHA-1,尽管存在已知漏洞,但 Git 已包含安全措施。

6. Reftables 性能优化

  • 改进: 通过迭代器重用,Reftables 的性能得到提升。
  • 效果: 在具有随机读取的事务中,创建引用的速度提高了 7%,并有望通过进一步优化提升性能。

7. Reflogs 迁移支持

  • 新增功能: 支持使用 git refs migrate 命令在文件系统和 Reftables 后端之间迁移 reflogs。
  • 限制: 目前尚不支持具有多个工作树的仓库。

8. ref-filter 子系统优化

  • 优化内容: 优化了 git branchgit taggit for-each-ref 等命令的性能,特别是在处理大量引用时。

贡献者与发布信息

阅读 17
0 条评论