azure-devops - Azure 专用管道代理 .git 文件夹大小
问题描述
由于与此问题无关的原因,我们最近从托管转为私人代理。我们现在遇到的问题是私有代理的磁盘空间不足。我检查了为什么会出现这种情况,事实证明,对于代理创建的其中一个工作区,该.git
文件夹在白天增长到超过 20Gb,而存储库只有几 Gb。什么可以解释这种过度增长?
一些额外的信息:
- 我们从不同的分支构建,使用相同的管道(因此它重用相同的工作空间)
- 我们不会在运行之间清理工作区,因为这需要在每次构建时重新获取整个存储库,这会减慢构建速度。(我知道添加 clean 选项可以解决我们的问题,但它也会减慢所有构建,这是我们不想要的)
- 我们曾经
fetchdepth: 1
在我们的管道中使用,但我们最近删除了它,因为在私有代理上不再需要它,因为源在运行之间被缓存
编辑:澄清一下,我正在寻找一种方法来避免代理上的磁盘空间不足,而不会失去缓存源文件的能力。
解决方案
当我使用不同的分支运行相同的管道时,.git
文件夹大小确实会增加。
然后我发现这个问题的根本原因可能是.git/objects/pack
.
它会打包源文件,如果你的源文件足够大,打包后的文件也会占用很多空间。
有关更多详细信息,您可以参考此票证:删除由 git 创建的大型 .pack 文件
推荐阅读
- scala - Scala Spark:复制迭代器
- git - .git post-receive 挂钩,在终端中执行时有效;但不是在推动之后
- polygon - 光栅到多边形 - 零值
- delete-file - 删除使用 xorriso 提取的文件
- arangodb - 在 ArangoDB 中的大型二分图上使用 AQL 进行高效路径遍历
- sql-server - 数据仓库 从 Oracle 到 SQL Server 的初始加载
- xpages - 绑定 xPages 组合框无法正常工作
- c# - 从基类继承实例值
- javascript - 如何在 post.message 中检测 null var?
- javascript - 如何使用 Javascript 函数的输出更改 HTML 元素的 CSS?