2012-01-31 86 views
1

對於一個Ant擴展,我們有一個Java類,它檢索本地工作副本中最高的svnrevision編號。該類已經支持SVN 1.6,但我們必須將其更改爲使用本地wc.db支持SVN 1.7。我已經在這個主題上搜索了一段時間,但是找不到一個明確的提示如何解決這個問題。尋找Java類來檢索SVN中的SVN版本信息1.7

是否有任何示例代碼可用如何從SVN 1.7工作副本檢索修訂版本號,相當於svnversion二進制文件的功能?

乾杯 彼得

回答

1

SVNKit,唯一的Java API SVN我知道,只支持顛覆1.6.5。但也許你正在尋找的功能已經在工作?值得一試,imo。

+0

這不是真的:http://svn.svnkit.com/repos/svnkit/tags/1.3。 6/CHANGES.txt(支持1.6.17!)... – khmarbaise 2012-01-31 13:54:50

+0

我剛剛寫了SVNKit文檔說的是「最新的SVNKit支持Subversion 1.6.5」。看看這裏:http://svnkit.com/documentation.html – 2012-01-31 16:56:33

+0

是的,他們沒有更新該網站。 – khmarbaise 2012-01-31 17:31:48

1

解析顛覆元信息,以獲得最新版本號恕我直言不是一個好主意。

實際上,還有另一種獲取修訂號的標準方法。您可以使用svn:keywords以在每次提交後在您的文件中獲取當前修訂號。修改替換有$Revision$屬性。你只需要把以下字符串的文件,並將該文件版本控制之下:

$Revision$ 

如果您需要在螞蟻使用版本屬性,我建議把以下內容爲version.properties文件:

revision=$Revision$ 

然後包括到build.xml的發言:

<property file="build.properties"/> 

然後你就可以使用您的構建得離譜版本號PT:

<echo message="Deploying revision ${revision}" /> 

也請注意,你需要爲了得到$Revision$與實際值的文件取代使用顛覆性質明確啓用svn:keywords。如果您使用version.properties用於獲取版本號值,則需要以下命令來運行:

svn propset svn:keywords Revision version.properties 

不知道會爲你的情況下工作,但這是如果我想用我最經常用在我的項目的方法版本號在編譯過程中。這種方法肯定比從工作副本元信息獲取修訂號更好。