svn - 文件夹已存在,但它不是 Ansible Subversion 签出中的 Subversion 存储库错误
问题描述
我正在尝试使用 Ansible 颠覆模块从我的存储库服务器中签出 SVN 存储库。我已经在我的服务器中配置了一个 svn 存储库。我正在尝试使用 Ansible 剧本和颠覆模块将其签入我的 Ec2 机器。但是当我运行剧本时,我收到以下错误:
fatal: [localhost]: FAILED! => {"changed": false, "msg": "ERROR: ././ folder already exists, but its not a subversion repository."}
我的 Ansible 角色任务包含以下内容:
- name: SVN checkout
subversion:
repo: <my-ip>/svn/test
checkout: yes
update: yes
dest: ././
我收到如下错误,
更新观察
当我只使用“export: yes”选项导出时,它工作正常。该问题仅适用于结帐操作。
我的困惑是,使用上述 YML 结帐有什么问题吗?为什么只显示这些类型的错误?由于出口也正常工作。
解决方案
为了结帐到您应该使用的非空文件夹in_place
,此选项是在 2.6 版本中添加的,特别是此 PR。
尝试in_place = yes
添加到您的选项列表。
- name: SVN checkout
subversion:
repo: <my-ip>/svn/test
checkout: yes
update: yes
in_place: yes
dest: ././
仔细检查是否有任何内容被覆盖,这是在svn checkout --force
幕后进行的。
in_place默认值:否
如果该目录存在,则工作副本将使用 svn checkout --force 进行顶层检出;如果指定了 force,则还原具有不同内容的现有文件