【问题标题】:Reading SVN (Subclipse) rev number from java code从 java 代码中读取 SVN (Subclipse) rev number
【发布时间】:2011-10-28 16:39:25
【问题描述】:

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

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

环境:

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

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

提前致谢, 亚历山德罗

【问题讨论】:

    标签: java eclipse svn subclipse javahl


    【解决方案1】:

    有一个库“svnkit”-svnkit.com

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

    http://wiki.svnkit.com/Managing_A_Working_Copy

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 感谢您的回答!与此同时,我设法让它以这种方式工作(我知道我应该避免使用已弃用的方法,但我真的很着急,现在可以了):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;
      【解决方案3】:

      我发现即使我解决了问题,问题似乎仍然悬而未决,为了清楚起见,我在此处发布了代码,即使它已经插入到 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;
      

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-11-10
        • 1970-01-01
        • 2014-10-30
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多