1

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

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

干杯彼得

4

3 回答 3

1

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

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

$Revision$

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

revision=$Revision$

然后包含在build.xmlwith 语句中:

<property file="build.properties"/>

然后您将能够在构建脚本中使用修订号:

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

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

svn propset svn:keywords Revision version.properties

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

于 2012-01-31T13:42:04.453 回答
1

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

于 2012-01-31T12:42:09.860 回答
0

SVNKit 是不是太简单了:SVNKit alpha 版本已经支持 SVN 1.7工作副本格式......所以试一试......

于 2012-01-31T13:53:50.813 回答