私は SVN ANT バージョン 1.3.1、ANT 1.7.1、Java 1.6u を使用しており、SVN リポジトリは 1.6 です (prod\db\format
ファイルには「4」と表示されていると思います)。
2 つの SVN ターゲットがあります (「コピー」タスクが実行される前に「コミット」タスクが完了していないのではないかと思います。そのため、build.xml の一部として引用します)。
リリースを製品版としてタグ付けしようとしています (SVN-ANT に依存する ANT ビルドではかなり一般的なタスクのようですね)。コマンド ラインで次の操作を実行できます。
svn copy http://svnserver/svn/prod/Production/App \
http://svnserver/svn/prod/Archive/App/1.5 \
-m "Tagging Release of App as Version 1.5"
そしてもちろん、私は得る
Committed revision 27.
ただし、試してみると:
<target name="check-in" >
<svn refid="svn.settings">
<commit message="${application.name} - Committed to Prod" >
<fileset dir="${src.dir}">
<include name= "**/*"/>
</fileset>
</commit>
</svn>
</target>
<target name="tag-version-number" depends="check-in" >
<svn refid="svn.settings">
<copy
srcUrl="http://svnserver/svn/prod/Production/App/"
destUrl="http://svnserver/svn/prod/Archive/App/1.5/"
message="Tagging Release of App as Version 1.5">
</copy>
</svn>
</target>
奇妙なエラーが返されます:
check-in:
tag-version-number:
[svn] svn: File not found: revision 28, path '/Production/App/Production/App'
[svn] svn: '/svn/prod/!svn/bc/28/Production/summons' path not found: 404 Not Found (http://svnserver)
[svn] svn: File not found: revision 28, path '/Production/App/Production/App'
[svn] svn: '/svn/prod/!svn/bc/28/Production/summons' path not found: 404 Not Found (http:/svnserver)
[svn] <Copy> failed.
BUILD FAILED
C:\build\promote_prod.xml:210: Can't copy
彼らは、SVNリポジトリのパスにアクセスしようとする前に、おそらくコミットが完全に行われていないと思いますか? もしそうなら、コミットが完了するのを確実に待つために何ができますか? この新しい「tag-version-number」ターゲットを追加する前は、すべてが正常にコミットされていました (記録として、ビルド スクリプトでターゲット「check-in」が実行されているのはこれだけです)。
問題は別のものですか?