从java代码中读取SVN(Subclipse)rev编号

时间:2011-08-17 07:39:38

标签: java eclipse svn subclipse javahl

我希望能够从我的Java代码中读取当前的svn修订版号(我正在使用Subclipse),并将其与我在使用JUnit 4编写的回归测试中所需的其他内容一起输出。

我搜索了很多没有任何运气(一些信息指向javahl.jar,但我无法找出对我的情况有用的东西),我也试图自己弄清楚但没有再好运。

环境:

  • Eclipse版本:3.6.2,构建ID:M20110210-1200
  • Windows 7 32位
  • Subclipse 1.6.18(JavaHL 1.6.17)

如果可能的话,我想避免直接阅读.snv文件并达成“干净”的解决方案,因为我必须将此代码留给其他人。

提前致谢, 的Alessandro

3 个答案:

答案 0 :(得分:2)

有一个图书馆“svnkit” - svnkit.com

在wikipage上有很多例子,其中一个是“获取有关工作副本项目的信息”

http://wiki.svnkit.com/Managing_A_Working_Copy

还可以在项目的源代码中找到如何使用它的示例 http://code.google.com/p/svntask/

答案 1 :(得分:1)

我会研究 SVNKit ,尤其是SVNWCClient#doInfo()方法。

答案 2 :(得分:0)

我发现,即使我解决了问题,问题似乎仍然是开放的,我在这里发布代码是为了清晰,即使它已经插入到公司中了:

import org.tigris.subversion.javahl.*;
[...]

SVNClient svnClient = new SVNClient();
@SuppressWarnings("deprecation")
Status [] status = svnClient.status("absolutepathOfTheProject", true, false, true);

for(Status stat : status)
revNumber = (revNumber < stat.getRevisionNumber()) ? stat.getRevisionNumber() : revNumber;

请注意,此存根使用了一些不推荐使用的方法,当然可以用其他方法替换它们,但这可以作为解决原始问题的指南。