我希望能够从我的Java代码中读取当前的svn修订版号(我正在使用Subclipse),并将其与我在使用JUnit 4编写的回归测试中所需的其他内容一起输出。
我搜索了很多没有任何运气(一些信息指向javahl.jar,但我无法找出对我的情况有用的东西),我也试图自己弄清楚但没有再好运。
环境:
如果可能的话,我想避免直接阅读.snv文件并达成“干净”的解决方案,因为我必须将此代码留给其他人。
提前致谢, 的Alessandro
答案 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;
请注意,此存根使用了一些不推荐使用的方法,当然可以用其他方法替换它们,但这可以作为解决原始问题的指南。