2

ANT と SVNANT を使用して、svn 制御ファイルと新しいファイルとサブディレクトリが混在する作業ディレクトリをチェックインしたいと考えています。SVN ANT の"add" タスクに関する私の理解によると、以下にあるように "force" フラグを使用すると、次のようになります。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>タスクで「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から作業ディレクトリをチェックアウトし、フィルタリングされたディレクトリを使用して、必要なファイルのみをその作業ディレクトリにコピーすることです。

于 2012-07-09T21:11:57.807 に答える