2011-11-18 38 views
0

我正在爲Eclipse創建一個與Subclipse插件交互的插件。我想要做的一件事就是訪問用戶訪問其Subversion存儲庫所用的用戶名(提交作者姓名)。對於一個簡單的案例,我假設這個人只有一個存儲庫簽出到他們的工作區,我只對他們用於該工作區的用戶名感興趣,我該如何訪問它?如何在Eclipse工作區中獲取當前的Subclipse提交作者姓名?

注意:這個簡單的例子說明了我試圖解決的問題,但我仍然需要將其推廣到可能打開多個存儲庫的情況。

我知道這個信息存儲在某個地方,因爲當我嘗試進行提交併且Subclipse要求我確認我的憑據時,它已經預先填寫了用戶名,我只需輸入密碼即可。

我該如何去做這件事?

下面是一些我都試過了,但不工作:

String uname = ""; 
try { 
    uname = SVNProviderPlugin.getPlugin().getRepository("https://<path-to-my-repository>").getUsername(); 
} catch (SVNException e) { 
    // TODO Auto-generated catch block 
    e.printStackTrace(); 
} 
System.out.println("Username: " + uname); 

然而,這種輸出:Username:告訴我該字符串UNAME越來越""

回答

1

Subclipse不知道用戶的用戶名是什麼,所以沒有辦法從Subclipse中獲取它。關於你能做到這一點的唯一方法是嘗試讀取Subversion的緩存文件,但即使它們使用SVNKit,因爲它有自己的緩存也不行。

+0

當我嘗試通過Subclipse進行提交時,會出現一個對話框以獲取我的憑據以訪問回購。該對話框已經輸入了我的用戶名(它記住了我從原始存取回購)。這個存儲在哪裏?這是Subclipse或Subversion存儲這個?我可以訪問這個嗎? – jbranchaud

+0

在調用它之前,Subclipse會在SVN API中註冊一些回調函數。 SVN使用這些回調來請求信息,例如憑證。 SVN將用戶名傳遞給回調函數。您可以在〜/ .subversion/servers文件中設置一個默認用戶名,但是我相信它會使用您當前的登錄名。當然,一旦一個值被緩存,就是它所使用的值。 Subclipse從來不知道這些值,我們只是提供一個對話框,API可以用來詢問信息。 –

+0

我的插件能否以類似的方式使用這些回調函數來訪問當前的登錄信息? Subclipse中哪些類可以查看這些回調函數是如何實現的? – jbranchaud

相關問題