4

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

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

环境:

  • Eclipse 版本:3.6.2,内部版本号:M20110210-1200
  • Windows 7 32 位
  • 子剪辑 1.6.18 (JavaHL 1.6.17)

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

提前致谢, 亚历山德罗

4

3 回答 3

2

There is a library "svnkit" - svnkit.com

On wikipage there are many examples and one of them is "For getting info on Working Copy items"

http://wiki.svnkit.com/Managing_A_Working_Copy

Also example how to use it you can find in source code of project http://code.google.com/p/svntask/

于 2011-08-17T07:49:20.290 回答
1

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

于 2011-08-17T07:54:48.377 回答
0

我发现即使我解决了问题,问题似乎仍然悬而未决,为了清楚起见,我在这里发布了代码,即使它已经插入到 commet 中:

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;

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

于 2012-11-08T09:10:17.027 回答