我正在写一个有趣的剧本来自动化git的东西。
我有这样的文件夹结构:
deploy
├── prj-1
├── prj-2
├── main-project
在main-project中,我有prj-1和prj-2作为git子树,用于在服务器上进行部署。所以看起来像这样:
main-project
├── src
├── prj-1
├── prj-2
我想写一个使用git pull更新主项目中所有子树的剧本。这是我到目前为止所写内容的简化版本:
- name: update subtree
git:
repo: "git@bitbucket.org:X/prj-1.git"
dest: "/home/ubuntu/main-project/src/prj-1"
update: yes
version: dev
这个带有一些调整的示例脚本对于部署内的项目来说效果很好,但是当我使用它来更新子树时,会产生此错误:
"fatal: destination path XXX already exists and is not an empty directory
据我所知,ansible git模块应该首先克隆项目,如果项目已经存在,请对其进行更新(这是我所需要的)。
那么更新子树的最佳方法是什么?
P.s:我不想更改项目结构。我们有不同的存储库,但要进行部署,我们使用main-project,其中包含内部的所有其他项目。