在构建应用程序之前,我使用 ant 和 svntask 来更新存储库。在构建结束时,会发送一封包含构建结果的电子邮件。在该电子邮件中包含 svn 修订号和消息将非常有帮助,因此如果构建中断,我们知道要审查哪个修订。
我目前只显示修订号:
<status path="${main.site}" revisionProperty="sqlUpdateStatus.revision"/>
但我不知道如何(或是否有办法)获取该修订的消息(提交者输入的消息)。你们知道怎么做吗?
这并不完全是您问题的答案,但您是否考虑过使用持续集成 (CI) 工具,例如Hudson?
Hudson 开箱即用,支持 SVN 和 ANT,并且能够在构建失败时通过电子邮件发送错误。
我认为没有内置的方式来获取提交消息,但是您可以使用以下命令手动将其从 svn 中拉出:
svnlook log -r X /path/to/repo
这将返回位于 /path/to/repo 的存储库的修订 X 的日志消息。您可以将其包装在 ant 的 exec 任务中以从 ant 执行它...
哈德逊 +1 - 部署和设置非常简单
<svn username="username" password="password">
<log url="svn://url"/>
</svn>
我不知道用 svnant 获取它的好方法,但是从命令行获取它的好方法是:
svn propget --revprop svn:log -r1234
使用以下命令
svn propget --revprop svn:log -r HEAD --username USERNAME svn://THE_URL
使用可执行文件:
<exec executable="svn" dir="." outputproperty="ant.comment">
<arg line="propget --revprop svn:log -r${ant.revision}"/>
</exec>
<echo>The comment is: ${ant.comment}</echo>