首页 > 解决方案 > 文件夹已存在,但它不是 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 结帐有什么问题吗?为什么只显示这些类型的错误?由于出口也正常工作。

标签: svnansible

解决方案


为了结帐到您应该使用的非空文件夹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幕后进行的。

2.6 文档

in_place默认值:否

如果该目录存在,则工作副本将使用 svn checkout --force 进行顶层检出;如果指定了 force,则还原具有不同内容的现有文件


推荐阅读