2011-08-17 56 views
4

我希望能夠從我的Java代碼中讀取當前的svn修訂版號(我使用Subclipse)以便將其輸出到我需要的其餘部分我使用JUnit 4編寫的迴歸測試。從Java代碼讀取SVN(Subclipse)rev編號

我沒有任何運氣Google搜索了一些信息(有些信息指向javahl.jar,但我無法弄清楚任何對我的案例有用的信息),我也試圖弄清楚我自己卻又沒有運氣。

環境:

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

如果可能,我想避免直接閱讀.snv文件並達到「乾淨」的解決方案,因爲我必須將此代碼留給其他人。

由於提前, 亞歷山德羅

回答

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; 

請注意,這個存根使用一些不贊成使用的方法,當然可以用其他方法替換它們,但這是爲了解決原始問題的指導原則。

1

我會看看SVNKit,特別是SVNWCClient#doInfo()方法。

+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