【问题标题】:Looking for Java class to retrieve SVN version information in SVN 1.7在 SVN 1.7 中寻找 Java 类来检索 SVN 版本信息
【发布时间】:2012-01-31 12:32:10
【问题描述】:

对于 Ant 扩展,我们有一个 Java 类,它检索本地工作副本中最高的 svnrevision 编号。该类已经支持 SVN 1.6,但我们必须使用本地 wc.db 将其更改为支持 SVN 1.7。我已经在这个主题上搜索了一段时间,但找不到明确的提示如何解决这个问题。

是否有任何示例代码可用于如何从 SVN 1.7 工作副本中检索修订号,相当于 svnversion 二进制文件的功能?

干杯 彼得

【问题讨论】:

    标签: java svn working-copy


    【解决方案1】:

    解析颠覆元信息以获取最新的修订号恕我直言不是一个好主意。

    实际上,还有另一种获取修订号的标准方法。您可以使用svn:keywords 在每次提交后获取文件中的当前修订号。有 $Revision$ 属性用于修订替换。您只需要将以下字符串放入文件中并将此文件置于版本控制之下:

    $Revision$
    

    如果你需要在ant中使用revision属性,我建议将以下内容放入version.properties文件中:

    revision=$Revision$
    

    然后在build.xml 中包含以下语句:

    <property file="build.properties"/>
    

    然后您就可以在构建脚本中使用修订号了:

    <echo message="Deploying revision ${revision}" />
    

    还请注意,您需要使用颠覆属性显式启用svn:keywords,以便在您的文件中用实际值替换$Revision$。如果您使用version.properties 获取修订号值,则需要运行以下命令:

    svn propset svn:keywords Revision version.properties
    

    不确定这是否适用于您的情况,但如果我想在构建过程中使用修订号,这是我在项目中最常使用的方法。这种方法绝对比从工作副本元信息中获取修订号更好。

    【讨论】:

      【解决方案2】:

      SVNKit,我知道的唯一Java SVN API,只支持Subversion 1.6.5。但也许您正在寻找的功能已经在工作?值得一试,imo。

      【讨论】:

      【解决方案3】:

      SVNKit 是不是太简单了:SVNKit alpha version supports already SVN 1.7 工作副本格式...所以试一试...

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-03-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多