Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ant SVN签出或更新_Svn_Ant_Svn Checkout - Fatal编程技术网

Ant SVN签出或更新

Ant SVN签出或更新,svn,ant,svn-checkout,Svn,Ant,Svn Checkout,我正在编写从svn repo更新的ant脚本。但是,如果我没有首先从回购协议中手动执行签出,则更新不起作用 我希望svnant执行以下操作: 如果svn签出完成,则更新 否则请执行svn签出和更新 这里有两种方法-method1和method2(如果bash中的语句是shorten-then-ant属性,则使用if)。两者都有相同的想法,如果有.svn文件,那么这意味着我们正在签出,我们只进行更新,如果缺少.svn,我们确实需要进行签出 <?xml version="1.0"?> &

我正在编写从svn repo更新的ant脚本。但是,如果我没有首先从回购协议中手动执行签出,则更新不起作用

我希望svnant执行以下操作: 如果svn签出完成,则更新
否则请执行svn签出和更新

这里有两种方法-method1和method2(如果bash中的语句是shorten-then-ant属性,则使用if)。两者都有相同的想法,如果有.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