2012-07-12 92 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