网易首页 > 网易号 > 正文 申请入驻

微软工程师介绍了Git中一个会导致代码库膨胀的缺陷,修复方案即将推出

0
分享至


作者 | Tim Anderson

译者 | 平川

策划 | Tina

本文最初发布于 DEV CLASS。


Git 计算同一文件不同版本差异的方法存在缺陷,可能会使代码库膨胀数倍,导致性能问题并消耗过多的存储空间。

微软高级工程师 Jonathan Creamer发文 介绍了其团队使用的一个非常大的 JavaScript Git 存储库,一个单体库(一个存储库,存储多个相关的项目)。该库的每月活跃用户数超过 1000 人,代码行数约为 2000 万行。根据 Creamer 的报告,克隆这个存储库消耗了超乎想象的 178GB 磁盘空间。

该团队咨询了 Git 贡献者 Derrick Stolee(曾在 GitHub 工作,现为微软首席软件工程师)。他发现,在比较两个文件名是常用名的文件(本例中为 CHANGELOG.md)时,Git 实际上是在比较来自不同软件包的文件,因此每次提交都会发现很大的差异。

Stolee 向 Git 提交了一个 Pull 请求,添加了他所谓的 “path walk API”,使 Git 能够按路径对对象进行分组,“完全避免了文件名的哈希碰撞”。Creamer 使用新增的-path-walk参数,将git repack命令应用于这个大型存储库,结果库的大小减小到了 5GB。

在 Linux 内核邮件列表上,Stolee 也 发了 关于这个问题的帖子,称 “其主要发现是当前的文件名哈希算法只考虑了路径名的最后 16 个字符,在这样一个范围内自然会发生一些碰撞”。

在另一篇文章中,Stolee 指出:“在我查看的存储库中,按磁盘大小排序的前 100 个文件路径有一个明显的模式:其中 99 个是 CHANGELOG.json 和 CHANGELOG.md 文件...... 本应是一组微不足道的增量,却膨胀到了 20-60MB” 。

Stolee 还举了其他一些存储库的例子,用于说明新选项大大减少了它们所需的存储空间,其中一个存储库占用的存储空间从 130049MB 减少到了 4432MB。

Git 存储库过大的后果不仅是占用过大的磁盘空间,而且还会导致 Git 运行缓慢,有时甚至会完全失败,这取决于延迟和可用带宽。

虽然新选项确实可以显著节省空间,但这些例子都是大型存储库,有很多潜在的文件名冲突。典型的 Git 存储库无法以同样的方式受益。尽管如此,开发者们还是很希望在 Git 的发行版本中看到这些新功能。

https://devclass.com/2024/10/29/microsoft-engineer-describes-a-flaw-in-git-that-can-hugely-bloat-repositories-fix-is-on-the-way/

声明:本文为 InfoQ 翻译,未经许可禁止转载。

2024 年收官之作:12 月 13 日 -14 日,AICon 全球人工智能开发与应用大会将在北京举办。从 RAG、Agent、多模态模型、AI Native 开发、具身智能,到 AI 智驾、性能优化与资源统筹等大热的 AI 大模型话题,60+ 资深专家共聚一堂,深度剖析相关落地实践案例,共话前沿技术趋势。大会火热报名中,详情可联系票务经理 13269078023 咨询。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
工程结束后,盾构机为什么会就地掩埋,很多人都不清楚背后的真相

工程结束后,盾构机为什么会就地掩埋,很多人都不清楚背后的真相

听风者说
2025-01-13 21:09:28
篮网主帅:西蒙斯整场比赛都非常投入 我们需要他打出这样的表现

篮网主帅:西蒙斯整场比赛都非常投入 我们需要他打出这样的表现

直播吧
2025-01-13 23:59:05
“贤婿,我女儿配不上你……”知名品牌道歉!

“贤婿,我女儿配不上你……”知名品牌道歉!

鲁中晨报
2025-01-14 00:00:05
43岁范冰冰和男友人逛巴黎,亲密合影小巧依人,相濡以沫已20年

43岁范冰冰和男友人逛巴黎,亲密合影小巧依人,相濡以沫已20年

南城无双
2025-01-03 00:28:07
王星抵达国内,央视出手发声,网友:普通人别信王星在泰国撒的谎

王星抵达国内,央视出手发声,网友:普通人别信王星在泰国撒的谎

历史阿务
2025-01-11 17:05:16
瓜帅教育签名贩子:我认出你了&回去上学吧 不要在这浪费时间

瓜帅教育签名贩子:我认出你了&回去上学吧 不要在这浪费时间

直播吧
2025-01-13 18:29:22
和表哥出身湖南黑道,他创建缅甸KK园区,表哥成大佬司机娶小燕子

和表哥出身湖南黑道,他创建缅甸KK园区,表哥成大佬司机娶小燕子

阿胡
2025-01-12 19:30:46
罗马诺:奥卡福尔现已飞往德国,交易已得到确认

罗马诺:奥卡福尔现已飞往德国,交易已得到确认

懂球帝
2025-01-13 18:50:15
玩过两千多女人,夺去梦露初夜,女首富评价:他是用来满足女人的

玩过两千多女人,夺去梦露初夜,女首富评价:他是用来满足女人的

历史八卦社
2023-11-10 22:19:52
同意立法院长改选吗,韩国瑜又要被罢免?7万人网络投票结果震撼

同意立法院长改选吗,韩国瑜又要被罢免?7万人网络投票结果震撼

新时光点滴
2025-01-14 01:32:00
一觉睡醒,缅甸民众感觉天都塌了!绑个演员结果捅了个大娄子

一觉睡醒,缅甸民众感觉天都塌了!绑个演员结果捅了个大娄子

橘色数码
2025-01-11 12:38:07
中国首家BOSS旗舰店亮相上海

中国首家BOSS旗舰店亮相上海

财经网
2025-01-14 00:00:13
无须被归化!北青体育:混血球员王汉龙在18岁时选择了中国国籍

无须被归化!北青体育:混血球员王汉龙在18岁时选择了中国国籍

直播吧
2025-01-13 16:52:42
2名中国女游客在日本被撞身亡,有游客亲历:我也被困危险区域,万幸电车走的远道,最后操作得当才脱困

2名中国女游客在日本被撞身亡,有游客亲历:我也被困危险区域,万幸电车走的远道,最后操作得当才脱困

鲁中晨报
2025-01-13 18:08:09
福特2024年在中国盈利超44亿元

福特2024年在中国盈利超44亿元

电动知家
2025-01-13 13:39:13
妙瓦底套餐:上午落地泰国,下午安排剃头,晚上电疗

妙瓦底套餐:上午落地泰国,下午安排剃头,晚上电疗

老谢谈史
2025-01-12 21:37:09
中方身份已变!10天内两度重创美国科技霸权,外媒:这只是开端

中方身份已变!10天内两度重创美国科技霸权,外媒:这只是开端

一个有灵魂的作者
2025-01-12 12:57:14
城事 | 2025年天津的第一场雪要来了?预计这时下……

城事 | 2025年天津的第一场雪要来了?预计这时下……

天津广播
2025-01-13 20:32:56
看到李沁“愤然离场”,才懂娱乐圈的残酷真相,又在她身上应验了

看到李沁“愤然离场”,才懂娱乐圈的残酷真相,又在她身上应验了

睡什么起来嗨
2025-01-13 11:56:58
2名中国女游客在日本被撞身亡,事发地为“死亡道口”?更多细节披露——

2名中国女游客在日本被撞身亡,事发地为“死亡道口”?更多细节披露——

新京报
2025-01-13 14:53:45
2025-01-14 08:04:49
InfoQ incentive-icons
InfoQ
有内容的技术社区媒体
10638文章数 51030关注度
往期回顾 全部

科技要闻

传英伟达AI芯片故障引发微软等客户砍单

头条要闻

媒体:为对付中俄高超音速导弹 日本都"武装"到天上了

头条要闻

媒体:为对付中俄高超音速导弹 日本都"武装"到天上了

体育要闻

熟悉的姆巴佩回来了,但还是救不了皇马

娱乐要闻

掉粉350万!黄子韬破防删除送车视频

财经要闻

哪吒汽车危局 最大供应商是其国资股东?

汽车要闻

10万元级无图智驾 悦也PLUS全路况实测

态度原创

本地
时尚
数码
教育
军事航空

本地新闻

食味印象|来太原,先干了这碗牺汤!

这个风格突然大火!太适合过年了

数码要闻

英特尔Arc B570"Battlemage"GPU比Arc B580慢约12% 价格也低12%

教育要闻

线段与角杠上系列!线段中的分类讨论思想!

军事要闻

伊朗扩大保卫核设施军演

无障碍浏览 进入关怀版