SVN ANT“添加”任务“强制”选项提供“已经受版本控制”构建错误

时间:2012-07-09 20:49:41

标签: xml svn ant svnant

使用ANT和SVNANT,我想检查一个混合了svn控制文件和新文件和子目录的工作目录。根据我对SVN ANT "add" task的理解,使用下面的“force”标志应该执行类似于svn add --force *

的操作

基本上,我在CollabNet网站的this issue中遇到了同样的问题。

这是我的xml配置:

<target name="add-new-files-to-test-repo" depends="check-out-projects">
    <svn username="${svn.test.username}" password="${svn.test.password}" svnkit="true" javahl="false">
        <add
            force="true" > 
            <fileset dir="${svn.testdir}"/>
        </add>
    </svn>      
    <echo message="Adding new files to SVN"/>
</target>

给出回复:

svn: 'D:\Workspaces\TreXProjects\Build\testdir\New Text Document.txt' is already under version control

1 个答案:

答案 0 :(得分:2)

通过重新阅读我链接的文档,在我写完这篇文章之后,最终得到了这个工作。关于在<add>任务中使用“force”标志的部分表示:

  

(仅在设置了dir属性时适用。)

所以我的固定代码是:

<target name="add-new-files-to-test-repo" depends="check-out-projects">
    <svn username="${svn.test.username}" password="${svn.test.password}" svnkit="true" javahl="false">
        <add force="true" dir="${svn.testdir}" >
        </add>
    </svn>      
    <echo message="Adding new files to SVN"/>
</target>

当然,这意味着您无法使用<fileset>任务的“include”属性进行浏览 对于特定文件,作为我的问题中链接的问题的作者想要做的。我的解决方法是查看工作目录 SVN,使用过滤将我想要的文件复制到该工作目录中  然后那个目录。