tl; dr; hg clone ssh://[email protected]/team/repo ~/prod/
如果〜/ prod /不为空,将失败并显示“目标不为空”。我可以强制克隆吗?将Mercurial存储库克隆到非空目录中
我想写我的第一个Ansible剧本,应该将我的代码从Bitbucket Mercurial存储库部署到我的服务器。有一个部署路径~/prod
,其中包含所有代码文件以及~/prod/media
和~/prod/db.db
中的数据。为了确保如果~/prod
目录为空或不存在的剧本,甚至工作,这是我到目前为止有:
- name: create directory
file: path=/home/user/prod state=directory
- name: clone repo
hg:
repo: ssh://[email protected]/team/repo
dest: /home/user/prod
force: yes
在我的理解,它确保部署目录存在,然后克隆回购那里。如果该目录不存在或为空,它会很好地工作。但是,一旦我克隆了回购一次,这个剧本以destination is not empty
失败。
我可以先移动媒体和db.db,然后删除所有其他文件,然后克隆然后移回数据。但看起来很麻烦。
我只是想强制克隆。但我找不到办法。据推测,这是错误的,Mercurial不会允许我这样做。为什么和什么是更好的方式去?
的可能的复制[如何克隆Mercurial存储库到一个已经存在的目录?](https://stackoverflow.com/questions/3622374/how-do-clone-a-mercurial-repository-into-a-directory-that-already-exists) – ngoldbaum
@ngoldbaum ,谢谢,我已经看到了该线程,但在提供选项时,并没有回答这样的问题,如果这样的克隆是可能的。我会认为它不是。 – texnic