Я пишу сборник материалов для автоматизации git.
У меня есть такая структура папок:
deploy
├── prj-1
├── prj-2
├── 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-модуль должен сначала клонировать проект, а если проект уже существует, обновить его (что мне и нужно).
Так что желучший способ обновить поддеревья?
Ps: я не хочу менять структуру проекта.У нас есть разные репозитории, но для развертывания мы используем main-project, в котором находятся все остальные проекты.