大咖直播-鸿蒙原生开发与智能提效实战!>>> 了解详情
写点什么

Git 2.48 发布:全面迁移至 Meson 构建系统,内存泄漏问题已修复

作者:Aditya Kulkarni

  • 2025-02-13
    北京
  • 本文字数:1264 字

    阅读完需:约 4 分钟

Git 2.48 发布:全面迁移至 Meson 构建系统,内存泄漏问题已修复

Git 2.48 现已支持 Meson 构建系统,这套现代化方案将逐步取代已有的 Makefile、Autoconf 和 CMake 构建体系,有效地解决了旧有系统在 IDE 支持方面的局限性和维护难题。


根据 GitLab 的 Git 专家 Christian Couder 在 Git 2.48 更新说明中的解释,Meson 相较旧版的构建系统展现出多项关键优势,其中包括:直观的语法设计、广泛的兼容能力、对现代特性的支持,以及便捷的构建选项访问。Mason 的构建流程包含有创建构建目录、编译代码、执行测试和安装部署等标准化步骤,通过简单的分步操作指令即可完成。


值得注意的是,Git 在 2.48 版本中实现了重大突破:经测试套件验证,当前版本已完全消除内存泄漏问题。在此前版本中,223 个测试文件存在内存泄漏问题,2.47 版本将这一数量降至 60 处,而本次更新则是实现了彻底的修复。这项成就与 Git 的"库化改造"目标(将核心组件转化为标准库)及内存使用优化的战略高度契合。除非有特殊说明,所有新增测试默认都是能确保无内存泄漏问题的。


基于 bundle URI 的抓取操作现已支持通过 fsck 机制 进行完整性验证,这与常规抓取操作的验证方式保持了一致。这项改进允许根据问题的严重程度,对可接受或需拒绝的异常情况进行细粒度控制。此前版本中的 bundle 抓取不支持这项功能,此次更新则显著提升了仓库操作的安全性和易用性。


在引用一致性检查方面,Git 2.48 有了新的改进。git-fsck 命令现已能够检测出引用内容非法或符号引用指向无效目标等问题。这套检测机制最初是作为 2024 年谷歌编程夏令营(GSoC)项目的开发成果出现,现已正式整合至其核心工具链中。


Lobster 和 Reddit 平台上的技术社群在该版本的发布帖下展开了讨论。Lobster 社群上的技术讨论串中提到,尽管已知 SHA-1 存在安全缺陷,Git 和 GitHub 仍在使用该算法。虽然 Git 内置了防护措施,但开发者仍担忧可能出现的兼容性问题,以及误触发哈希碰撞检测机制所带来的潜在风险。


作为 Git 2.45 版本引入的引用存储后端(用于管理分支、标签等数据),Reftables 在 2.48 版本中通过迭代器重用优化实现了性能的提升,新版解决了此前每次读取引用都需要新建迭代器的效率瓶颈。现在的 Reftables 可以通过复用单个迭代器完成多次读取操作,使得随机读取事务中的引用创建速度提升 7%,未来还可通过迭代器内部状态复用实现更多性能优化。


该版本还通过 git refs migrate 命令新增了跨后端迁移引用日志(reflog)的功能。虽然在 Git 2.46 中已引入过后端迁移工具,但此前版本无法在基于文件的传统存储方案与 Reftables 之间转换引用日志。尽管当前版本仍不支持含多个工作树的仓库迁移,但也已经为采用 Reftables 的用户消除了一大限制条件。


面向 git branchgit taggit for-each-ref 等命令的 ref-filter 子系统 也进行了性能优化,显著提升了处理大型仓库海量引用时的执行效率。


关于本次更新的完整内容,可参考 GitLab 官方公告,项目发布说明中列出了所有贡献者名单。


查看英文原文


Git 2.48: Modernized with Meson Build System, Memory Leaks Fixed (https://www.infoq.com/news/2025/01/git-modernized-meson-build/)

2025-02-13 14:0010161

评论

发布
暂无评论

OKALEIDO:我们为何如此看好多媒体NFT板块?

股市老人

Python反爬,JS反爬串讲,从MAOX眼X开始,本文优先解决反爬参数 signKey

梦想橡皮擦

Python 爬虫 7月月更

ORACLE进阶(十二)union(all)学习总结

No Silver Bullet

oracle 7月月更 union union all

【愚公系列】2022年7月 Go教学课程 008-数据类型之整型

愚公搬代码

7月月更

基于物联网设计的铂电阻气体测温仪(华为云IOT)

DS小龙哥

7月月更

电商系统微服务架构

泋清

#架构实战营

架构实战营模块六作业

Geek_Q

Jenkins centOS搭建和task创建

沃德

ci 程序员 7月月更

内部排序——归并排序

乔乔

7月月更

QT 实现生成压缩包

小肉球

qt 7月月更

C++|登录后通知各个显示页面,观察者模式

中国好公民st

c++ 7月月更

ORACLE进阶(十一)MERGE INTO学习总结

No Silver Bullet

oracle MERGE INTO 7月月更

14岁懂社会 - 《你没有那么笨》读书笔记

懒时小窝

读书笔记 14岁懂社会

关于 HTTP post 请求 form data 里的特殊符号,比如加号 plus symbol

汪子熙

HTTP web开发 7月月更 encoding form

Hive说我变了,Spark说不你没变

怀瑾握瑜的嘉与嘉

spark 7月月更

双目立体匹配之匹配代价计算

秃头小苏

7月月更 双目立体匹配

Spring 核心概念

说故事的五公子

Java spring

Spring Cloud源码分析之Eureka篇第七章:续约

程序员欣宸

Java Spring Cloud Eureka 7月月更

前端异常监控平台对比

南城FE

前端 7月月更 异常监控

数据库每日一题---第21天:员工花费的总时间

知心宝贝

数据库 云计算 后端 开发 7月月更

Android Wear开发步骤

芝麻粒儿

android 手机 7月月更

C 语言入门(二)

逝缘~

c 7月月更

java零基础入门-Number & Math 类

喵手

Java 7月月更

iOS中的继承

NewBoy

前端 移动端 iOS 知识体系 7月月更

Python|揭开「pip不是内部或外部命令,也不是可运行的程序或批处理文件」的神秘面纱

AXYZdong

Python 7月月更

新星计划Day3【JavaSE】 集合 Part1

京与旧铺

7月月更

人最痛苦的时候就是没有目标的时候

KEY.L

7月月更

LeetCode-125. 验证回文串(java)

bug菌

Leet Code 7月月更

Node.js的非阻塞I/O

是乃德也是Ned

Node 7月月更

TCP拥塞控制详解 | 5. 回避算法

俞凡

算法 网络 TCP拥塞控制

Git 2.48 发布:全面迁移至 Meson 构建系统,内存泄漏问题已修复_AI&大模型_InfoQ精选文章