java - 在SVN 1.7中寻找Java类来检索SVN版本信息

标签 java svn working-copy

对于 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/

相关文章:

Java多线程与方法调用结合使用?

java - 阿拉伯值在 jsp servlet 中不起作用

java -> com.android.build.api.transform.TransformException:java.util.zip.ZipException:重复条目:org/apache/commons/collections/ArrayStack.class

git - 使用 svn external 将 svn 迁移到 git

c# - Visual-SVN 服务器 C# 代码未正确添加用户权限(版本 2.7.2)

git - git 可以使用 stash 对工作副本进行比较吗

java - 我的可比方法有什么问题?尝试对对象中的 int 字段进行排序

linux - 是否有像 Git 一样的 SVN 交互式提交菜单 --interactive?

git status 显示修改,git checkout -- <file> 不删除它们

svn - Ankhsvn Subversion 迁移