2

使用 ANT 和 SVNANT,我想检查一个工作目录,该目录混合了 svn 控制的文件以及新文件和子目录。根据我对 SVN ANT “添加”任务的理解,使用下面的“强制”标志应该做类似的事情svn add --force *

基本上,我在CollabNet 站点的这个问题中描述了同样的问题。

这是我的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
4

1 回答 1

2

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

(仅在设置 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>任务的“包含”属性来浏览特定文件,正如我的问题中链接的问题的作者想要做的那样。我的解决方法是从 SVN 签出工作目录,使用过滤后的目录仅将我想要的文件复制到该工作目录中。

于 2012-07-09T21:11:57.807 回答