Git post-接收挂钩中的 Chef Cookbooks 的 rsync 风格刀上传

rsync style knife upload of Chef Cookbooks in Git post-receive hook

我想 knife upload 在食谱存储库的 post- 接收挂钩中。但是,我们的食谱太多,无法在做出更改时简单地上传所有这些食谱。

有没有办法knife upload只更改食谱?

听起来你所有的食谱都在同一个仓库中。您可以使用 git diff 来确定 HEAD 和之前的提交之间的变化,然后 knife 上传这些结果。

git diff --name-only HEAD HEAD~1 | awk -F '/' '{ print  }' | sort | uniq | xargs -I % knife cookbook upload %

如果您使用 berks upload,它将自动跳过已上传当前版本的所有内容。