Svn Subversion Ant更新任务需要花费很长时间
我从tigris.org下载了ant的svntask,所以它是“官方”的 我有一个简单的任务来更新我的整个项目Svn Subversion Ant更新任务需要花费很长时间,svn,ant,build-process,build-automation,performance,Svn,Ant,Build Process,Build Automation,Performance,我从tigris.org下载了ant的svntask,所以它是“官方”的 我有一个简单的任务来更新我的整个项目 <target name="prepare"> <svn username="user" password="pass"> <update> <fileset dir="."/> </update> </svn>
<target name="prepare">
<svn username="user" password="pass">
<update>
<fileset dir="."/>
</update>
</svn>
</target>
运行此任务大约需要2小时
在命令行上运行svn更新
大约需要5秒钟
(在这两种情况下,都没有要从服务器上下载的更新)
我还尝试了改变svntask用于与subversion接口的方法,我尝试了svnkit方法和命令行方法
你知道为什么要花这么长时间吗?显然,这是令人无法接受的缓慢
谢谢所以如果你只运行“ant prepare”需要2小时?或者这2小时的持续时间仅在特殊条件下,如您的构建机器
您是否尝试过使用任务进行比较,以尝试和隔离它是Ant还是特定任务?1.您使用哪个库访问svn(svnkit或javahl) 尝试显式提供适当的库:
<svn username="user" password="pass" svnkit="true">
2.我不确定是否必须为更新提供用户名和密码参数(它们在签出时被缓存)
3.如果您的用例与我的类似,您可以将签出任务重新用于签出和更新:
我不明白为什么svntask需要2个小时,所以我会先详细研究一下 但如果必须,可以从命令行运行SVN:
<exec executable="cmd.exe">
<arg line="/c svn checkout repository ..."/>
</exec>
编辑:实际上,你不需要dos窗口,你可以直接做。我这样做只是为了在ant控制台中看到输出。通过使用嵌套的
命令,该命令最终会为当前目录层次结构中的每个文件调用update
。这可能就是为什么需要两个小时
尝试使用update
任务的dir
属性:
<svn username="user" password="pass">
<update dir="."/>
</svn>
如果这不起作用,请打开
-verbose
或-debug
,查看是否可以获得有关任务期间发生的事情的更多信息。对构建进行分析,以查看它实际花费了大部分时间的位置,这可能会很有帮助。用于此目的非常容易。只需将jar添加到您的类路径中,并按如下方式运行它:
ant -listener net.java.antutility.BuildMetricsListener [target]
ant -listener net.java.antutility.BuildMetricsListener [target]