对于 Ant 扩展,我们有一个 Java 类,它检索本地工作副本中的最高 svnrevision 号。该类已经支持 SVN 1.6,但我们必须使用本地 wc.db 对其进行更改以支持 SVN 1.7。我现在已经在谷歌上搜索了这个主题一段时间,但找不到如何解决这个问题的明确提示。
是否有任何示例代码可用于如何从 SVN 1.7 工作副本中检索修订号,相当于 svnversion 二进制文件的作用?
干杯 彼得
最佳答案
解析 subversion 元信息以获得最新版本号恕我直言不是一个好主意。
实际上,还有另一种获取修订号的标准方法。您可以使用 svn:keywords 来在每次提交后获取文件中的当前修订号。有用于修订替换的 $Revision$
属性。您只需将以下字符串放入文件中并将该文件置于版本控制之下:
$Revision$
如果你需要在ant中使用revision属性,我建议将以下内容放入version.properties文件中:
revision=$Revision$
然后将以下语句包含到 build.xml
中:
<property file="build.properties"/>
然后您将能够在构建脚本中使用修订号:
<echo message="Deploying revision ${revision}" />
另请注意,您需要使用 subversion 属性显式启用 svn:keywords
,以便将文件中的 $Revision$
替换为实际值。如果您使用 version.properties
来获取修订号值,您将需要运行以下命令:
svn propset svn:keywords Revision version.properties
不确定这是否适合您的情况,但如果我想在构建过程中使用修订号,这是我在项目中最常使用的方法。这种方法绝对比从工作副本元信息中获取修订号更好。
关于java - 在SVN 1.7中寻找Java类来检索SVN版本信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9079538/