【问题标题】:Subversion Ant update task taking foreverSubversion Ant 更新任务永远耗时
【发布时间】:2010-09-27 13:05:48
【问题描述】:

我从 tigris.org 下载了 ant 的 svntask,所以它是“官方”的。

我有一个简单的任务来更新我的整个项目

<target name="prepare">
    <svn username="user" password="pass">
        <update>                
            <fileset dir="."/>
        </update>
    </svn>
</target>

运行此任务大约需要 2 个小时。

在命令行上运行svn update 大约需要 5 秒。

(在这两种情况下,服务器都没有更新)

我也尝试过更改 svntask 用于与 subversion 交互的方法,我尝试过 svnkit 方法和命令行方法。

任何想法为什么这可能需要这么长时间?显然,这慢得让人无法接受。

谢谢

【问题讨论】:

    标签: svn ant build-process build-automation performance


    【解决方案1】:

    通过使用嵌套的&lt;fileset&gt;,该命令最终会为当前目录层次结构中的每个文件调用update。这可能就是为什么需要两个小时。

    尝试使用update 任务的dir 属性:

        <svn username="user" password="pass">
            <update dir="."/>                                
        </svn>
    

    如果这不起作用,请打开 -verbose-debug,看看您是否可以获得有关任务期间发生的事情的更多信息。

    【讨论】:

      【解决方案2】:

      1.您使用哪个库来访问svn(svnkit或javahl)?

      尝试明确提供适当的库:

      <svn username="user" password="pass" svnkit="true">
      

      2.我不确定您是否必须为更新提供用户名和密码参数(它们在结帐时被缓存)。

      3.如果您的用例与我的相似,您可以为 checkoutupdate 重复使用 checkout 任务:

      <target name="prepare">
        <svn username="user" password="pass">
            <checkout url="${svn.url}" destpath="${svn.path}" />
          </svn>
      </target>
      

      【讨论】:

        【解决方案3】:

        所以如果你只运行“ant prepare”需要 2 小时?或者这 2 小时的持续时间是否仅在您的构建机器等特殊条件下?

        您是否尝试过使用该任务进行比较,以尝试隔离它是否是 Ant 与特定任务?

        【讨论】:

          【解决方案4】:

          我不明白为什么 svntask 需要 2 个小时,所以我会先详细研究一下。

          但如果必须,您可以从命令行运行 SVN:

          <exec executable="cmd.exe">
              <arg line="/c svn checkout repository ..."/>
          </exec>
          

          编辑:其实你不需要dos窗口,直接做就可以了。我这样做是为了在 ant 控制台中看到输出。

          【讨论】:

            【解决方案5】:

            分析您的构建以了解它实际花费大部分时间的位置可能会很有启发性。 antutility 非常容易用于此目的。只需将 jar 添加到您的类路径并运行它:

              ant -listener net.java.antutility.BuildMetricsListener [target]
            

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2015-02-02
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2022-10-12
              相关资源
              最近更新 更多