内容提要
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报告中被忽视了近一年。