2012-07-12 52 views
0

我正在寫一個從svn回購更新的ant腳本。但是,如果我第一次沒有從回購站手動完成結賬,更新不起作用。螞蟻SVN結帳或更新

我希望svnant能夠做到以下幾點: 如果svn checkout完成了,那麼更新 否則會執行svn checkout和update。

回答

1

這裏有兩種方法 - method1,method2(如果bash中的語句縮短,那麼笨螞蟻屬性)。如果有.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