Opscode Chef - 清理/共享/缓存副本的方法

时间:2013-03-27 17:25:27

标签: git chef pipeline chef-recipe cookbook

我们在管道中使用Opscode Chef,我们注意到部署(请参阅http://docs.opscode.com/resource_deploy.html)创建了源代码到/ shared / cached-copy的完整副本

它的.git / object文件夹中已有近千个完整版本(不仅仅是deltas!),因此文件大小增长和增长。

有没有办法让这些得到清理甚至完全阻止?我们根本不需要它。

我确实可以在每次部署后写一些东西来删除目录但是有一个很好的方法来处理它吗?感谢。

2 个答案:

答案 0 :(得分:1)

缓存副本有一个目的,当git从远程提取更改时,缓存副本仅用于提取缺少的内容,不再需要。然后使用git将此缓存副本克隆到新修订版,并且当git克隆同一磁盘上的存储库时,它会创建硬链接 - 因此您的.git /对象不会重复,它们是在所有“副本”中共享的相同文件。我建议你保持这个目录不变,这实际上很重要。

答案 1 :(得分:1)

我们看到了不同的东西。在我们的例子中,我们使用子模块。删除子模块时,git pull不会删除旧的子模块目录。所以我们留下了垃圾。使用此额外代码将缓存副本复制到发行版中。