克里斯托夫·伯格:Git 过滤器

克里斯托夫·伯格:Git 过滤器

💡 原文英文,约600词,阅读约需2分钟。
📝

内容提要

Debian使用Git存储库来维护软件包,但大量数据导致存储问题。他们通过使用git clone --filter命令找到了解决方案,这显著减小了存储库的大小。总体磁盘消耗从近300GB减少到15GB。

🎯

关键要点

  • Debian的软件包主要在Git存储库中维护,许多存储在salsa.debian.org上。

  • Debian运行一个vcswatch服务来跟踪所有包装存储库的状态,并将其存储在PostgreSQL数据库中。

  • 过去,Git数据的存储需求导致scratch分区扩展到300GB,尝试使用浅克隆仅节省了少量空间。

  • Debian只需要从存储库中获取最少的信息,因此尝试不获取完整的存储库克隆。

  • Gábor Németh建议使用git clone --filter blob:none来解决存储问题,这一建议在bug报告中被忽视了近一年。

  • 使用blob:none过滤器后,克隆的存储库大小缩小到原始大小的1/100。

  • 进一步使用tree:0过滤器,克隆的存储库大小缩小到原始大小的1/1000。

  • 在qa.debian.org上部署新选项后,整体磁盘消耗从近300GB减少到15GB,减少了1/20。

  • 一些存储库的大小从GB级别缩小到MB级别。

延伸问答

Debian如何管理其软件包的存储?

Debian通过使用Git存储库来维护软件包,主要托管在salsa.debian.org上,并运行vcswatch服务跟踪所有包装存储库的状态。

使用git clone --filter命令有什么好处?

使用git clone --filter命令可以显著减少克隆的存储库大小,例如使用blob:none过滤器后,存储库大小缩小到原始大小的1/100。

Debian在存储库管理中遇到了什么问题?

Debian面临的主要问题是Git数据的存储需求,导致scratch分区扩展到300GB,且浅克隆仅节省了少量空间。

如何通过git过滤器减少存储需求?

可以使用git clone --filter blob:none和tree:0过滤器来减少存储需求,前者使克隆大小缩小到1/100,后者进一步缩小到1/1000。

Debian的整体磁盘消耗减少了多少?

通过使用git过滤器,Debian的整体磁盘消耗从近300GB减少到15GB,减少了1/20。

Gábor Németh的建议是什么?

Gábor Németh建议使用git clone --filter blob:none来解决Debian的存储问题,这一建议在bug报告中被忽视了近一年。

🏷️

标签

➡️

继续阅读