術語匯編:簡單剖析Subversion Eclipse
學習Subversion 時,你可能會遇到Subversion Eclipse問題,這里我發表一下個人理解,和大家討論討論。
Subversion Eclipse首先下載Subversion的Win32自動安裝包,安裝。安裝包會自動添加Path等變量。建立D:\Svn\repository文件夾,作為代碼的根目錄。
執行命令:svnadmincreateD:\Svn\repository建立倉庫根目錄。
下載并安裝SVNServiceWrapper,將svnserve包裝為服務。http://www.mscto.com
http://dark.clansoft.dk/~mbn/svnservice/http://www.mscto.com
將svnservice.execopy到subversion的bin目錄。http://www.mscto.com
執行:svnservice-install-d-rd:\Svn\repository,在控制面板->服務中手動開啟服務。
版本控制使用passwd文件。修改%REPO_HOME%/conf/svnserve.conf,包含如下幾句:
[general]http://www.mscto.com
#指定匿名可讀,授權后才可寫入
anon-Access=read
軟件開發網
auth-access=writehttp://www.mscto.com
軟件開發網
#指定密碼文件為當前目錄下passwd
password-db=passwd
Passwd文件內容如下,用戶名=密碼:
軟件開發網
http://www.mscto.com
[users]
user1=123456
在這里要注意,所有字符串都要頂格寫。
客戶端使用Eclipse的subclipse就可以。url直接使用svn://localhost/即可。如果使用本機服務也可以使用file///.感覺subversion的安裝比較方便。
SVN協議使用端口:3690。防火墻需要打開此端口。
Subversion也有圖形的客戶端,可以在TortoiseSVN找到。
Subversion也VS.net的插件,可以在AnkhSVN找到。
TortoiseSVN相信不錯,因為以前用過它的另一個ForCVS的工具,可以和瀏覽器結合在一起,非常方便和美觀。設置項目目錄
當svnserve開始運行時,它將會暴露所有的Repository到網絡上。不過,當客戶端需要獲取一個Repository的內容時,需要指定Reopsitory的絕對路徑。例如:一個Repository放在文件路徑
C:/ProjectRepository/Project1
那么當客戶端訪問時,需要指定絕對路徑:
svn://host/C:/ProjectRepository/Project1
所以,為了增加保密性,你可以使用參數-r指定需要暴露的Repository的路徑,當用戶訪問時,只需指定Repository的名稱即可。例如上面的Repository,當啟動服務時,使用如下的方法:
svn-d-rC:/ProjectRepository
那么當客戶端訪問時,則使用svn://host/Project1就可以獲取數據了。下面講一下Subversion Eclipse的內置的驗證和授權。
內置的驗證和授權
當客戶端連接到一個svnserve進程時,下面的流程就會觸發:
1、客戶選擇一個指定的Repository;
2、服務處理Repository的配置文件conf/svnserve.conf文件,并且開始執行在其中定義的所有驗證和授權策略;
3、依賴與情形和授權策略:
a)客戶端也許允許匿名訪問而不需要驗證,或者
b)客戶但也許需要在任何時候被要求驗證,或者
c)假如處于"隧道模式"中,客戶端將聲明自己已經可以被外部驗證。http://www.mscto.com
很顯然,如上所說,用戶文件是一個名為svnserve.conf的,放在conf目錄下的文件。
現在我們來看看如何配置這個文件:
這個配置文件放置在Repository的目錄中的conf目錄下,它有兩個節點:
[general]
[users]
其中,[general]的配置信息有:
anon-access=read
auth-access=write
其中表示對于驗證有效的以及沒通過驗證的用戶可以做什么事情。分別有read,write和none
[users]的標簽的配置內容有:
USERNAME=PASSWORD
password-db=passwd
realm=MyFirstRepository
其中表示,用戶名對應的密碼是什么,或者指定一個存儲用戶名和密碼的文件的相對或絕對路徑以及指定了Repository的驗證領域。如果兩個Repository有相同的驗證領域,那么它們應該有相同的密碼數據庫,反之亦然。默認的領域就是指向當前的Repository的路徑,與服務器的Repository的根目錄相關。Subversion Eclipse已經介紹完畢。
【編輯推薦】