【问题标题】:ant svntask retrieving revision messageant svntask 检索修订消息
【发布时间】:2009-08-31 22:08:47
【问题描述】:

我在构建应用程序之前使用 ant 和 svntask 来更新存储库。在构建结束时,会发送一封包含构建结果的电子邮件。在该电子邮件中包含 svn 修订号和消息将非常有帮助,因此如果构建中断,我们知道要审查哪个修订。

我目前只显示修订号:

<status path="${main.site}" revisionProperty="sqlUpdateStatus.revision"/>

但我不知道如何(或是否有办法)获取该修订的消息(提交者输入的消息)。你们知道怎么做吗?

【问题讨论】:

  • 有什么方法可以使用 ant 获取修订信息?我尝试使用 ant svntask,但找不到任何方法来获取修订消息。

标签: svn ant svnant


【解决方案1】:

这并不完全是您问题的答案,但您是否考虑过使用持续集成 (CI) 工具,例如 Hudson

Hudson 开箱即用,支持 SVN 和 ANT,并且能够在构建失败时通过电子邮件发送错误。

【讨论】:

    【解决方案2】:

    我认为没有内置的方式来获取提交消息,但您可以使用以下命令手动将其从 svn 中拉出:

    svnlook log -r X /path/to/repo
    

    这将返回位于 /path/to/repo 的存储库的修订 X 的日志消息。您可以将其包装在 ant 的 exec 任务中以从 ant 执行它...

    +1 for Hudson - 部署和设置非常简单

    【讨论】:

      【解决方案3】:
      <svn username="username" password="password">
       <log url="svn://url"/>
      </svn>
      

      【讨论】:

      • 我如何捕获输出?我搜索了有关 log 命令的更多信息,但我唯一能找到的是:code.google.com/p/svntask/source/…。我尝试设置 logPropety 属性,然后使用该变量,但它不起作用。如果我只是把它放在那里,它会说 [svn] 开始... [svn] 完成。谢谢!
      • 抱歉 FoxyBOA,还在吗? :) 如果我没有发现这一点,我可能会接受 rjohnston 的建议。虽然 Hudson 似乎是一个很好的建议,但我现在没有时间实施它。也许是为了未来。
      • 使用 destFile="changelog.txt" 选项
      【解决方案4】:

      我不知道用 svnant 获取它的好方法,但是从命令行获取它的好方法是:

      svn propget --revprop svn:log -r1234
      

      【讨论】:

        【解决方案5】:

        使用可执行文件:

        <exec executable="svn" dir="." outputproperty="ant.comment">
             <arg line="propget --revprop svn:log -r${ant.revision}"/>
        </exec>
        <echo>The comment is: ${ant.comment}</echo>
        

        【讨论】:

          【解决方案6】:

          使用以下命令

          svn propget --revprop svn:log -r HEAD --username USERNAME svn://THE_URL
          

          【讨论】:

          • 这适用于外壳。不过,这似乎不是问题所在。
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-12-14
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多