几个选项,我可以看到
1 - 前 - 显示,更新了svn起来发出SVN状态和工作是否有任何变化(应该是在响应计数线一样简单 - 我认为和最新的文件夹将只生成1行)
2 - 从svn-update任务更改为exec任务,并将输出从svn重定向到测试文件,您可以发布过程以确定是否有更新(与第一个选项类似)。
3 - 根据http://jonathanmalek.com/wp/?p=244获取svn后的svn日志,然后处理xml以确定是否进行了任何更改。这只有在保证只有1转数增加的情况下才有效,因为它只获取上次修订的日志信息。对此的变化将在svn之前和之后抓取日志,然后进行比较。
<target name="Svn-update">
<!-- Default to true so failure mode is to build/signal build is required -->
<property name="source.changed" value="true"/>
<exec
program="svn.exe"
commandline=’up′
output="_update.log"
failonerror="true"/>
<property name="updates.count" value="0"/>
<foreach item="Line" in="_update.log" property="updates.line" trim="Both">
<property name="updates.count" value="${int::parse(updates.count) + 1}"/>
</foreach>
<if test="${updates.count==1}">
<!-- An up to date working directory generates a single line "At revision xxx" -->
<property name="source.changed" value="false"/>
</if>
</target>
现在:
个人而言,我会去与选项2上运行一个SVN了最新的工作目录结果在一条线(修订版),因此从使用svn更新任务以下改变您可以使用if =“$ {source.change =='true'}”和除非=“$ {source.changed =='true'}”来确定何时应该执行剩余的构建和通知
迄今为止付出的努力,但我认为我需要更具体的东西来奖励积分。来吧 - 给我一些代码! :o) – 2009-10-13 12:39:58
你是男人!好功夫! 150分即将到来! – 2009-10-14 10:54:58