svn リポジトリから更新する ant スクリプトを書いています。ただし、最初にレポから手動でチェックアウトを行っていない場合、更新は機能しません。
私は svnant に次のことをさせたい: もし svn checkout が完了したら、それから更新し、そうでなければ svn checkout を実行して更新する。
svn リポジトリから更新する ant スクリプトを書いています。ただし、最初にレポから手動でチェックアウトを行っていない場合、更新は機能しません。
私は svnant に次のことをさせたい: もし svn checkout が完了したら、それから更新し、そうでなければ svn checkout を実行して更新する。
これが2つの方法です-method1、method2(bashからのステートメントが短縮されてから厄介なantプロパティを使用する場合)。どちらも.svnファイルがある場合は同じ考えを持っており、チェックアウト中であり、更新のみを行います。.svnがない場合は、チェックアウトする必要があります。
<?xml version="1.0"?>
<project>
<target name="check-svn">
<available file=".svn" property="svn.present"/>
</target>
<target name="method1">
<antcall target="svnup"/>
<antcall target="svnco"/>
</target>
<target name="svnup" depends="check-svn" if="svn.present">
<exec executable="echo">
<arg value="svn update"/>
</exec>
</target>
<target name="svnco" depends="check-svn" unless="svn.present">
<exec executable="echo">
<arg value="svn checkout"/>
</exec>
</target>
<target name="method2">
<exec executable="bash">
<arg value="-c"/>
<arg value="if [ -e .svn ];then echo svn update; else echo svn checkout; fi"/>
</exec>
</target>
</project>
バッシュウェイ:
([ -e .svn ] && echo svn update) || echo svn checkout