目前 Subversion 官網上面列了三種不同口味的 server 打包版本:
以往我一直是用 CollabNet 打包的版本,這個版本(我用的是 v1.5)有個小缺點:若要使用 Windows 帳戶驗證,還得自己手動調整一些設定(參考這篇:Subversion 從 1.4.x 升級到 1.5 的注意事項)。
近日手癢,試了一下 VisualSVN v1.7。安裝方法非常簡單,幾乎都是按「下一步」就裝完了。在安裝過程中會讓你指定身分驗證機制要採用 Windows 帳戶驗證還是 VisualSVN 本身維護的帳戶,以及要用 HTTP 還是 HTTPS 協定。參考以下畫面:
不用三分鐘就裝完了,裝完之後不需要手動編輯組態檔,也不用其他額外設定,一台 Subversion 伺服器就能開始運作了。連我原本使用 CollabNet Subversion server 建立的檔案庫,也都是直接複製到 VisualSVN 的檔案庫目錄下就能直接使用。不過,我原本的檔案庫就是用 VisualSVN 預設支援的 FSFS 格式,若檔案庫是之前的 BDB 格式,我就不確定能否直接掛上了。
VisualSVN 安裝完後,Windows 系統會多出一項服務:VisualSVN Server,如下圖所示:
此外,程式集裡面還有一個管理工具:VisualSVN Server Manager。你可以利用此工具修改 Subversion server 的相關設定,例如身分驗證方式、傳輸協定、檔案庫所在路徑等等;也可以管理你的檔案庫,包括:檢視檔案庫、設定檔案庫存取權限(No Access、Read Only、Read/Write),甚至編輯 hooks。
缺點
雖然 VisualSVN 有著安裝簡單、對 Windows 帳戶驗證的支援較強(Active Driectory 帳戶也支援)、提供視覺化管理工具等優點,但也有些缺點(這裡指的是 v1.7 的版本),例如:
可是 VisualSVN 預設不支援這樣的目錄配置。以剛才的例子來說,若嘗試 svn checkout http://localhost/svn/Books/ooad,結果會無法取出檔案。解決辦法是在 Apache 的組態檔中增加一個 URI 位置的設定,像這樣:
奇怪的是,CollabNet 和 VisualSVN 都是用 Apache HTTP Server,同樣的 SVNParentPath 設定卻有不同的作用,不知是否為二者採用之 Apache 版本不同所致,或者我漏掉了某個設定?
以往我一直是用 CollabNet 打包的版本,這個版本(我用的是 v1.5)有個小缺點:若要使用 Windows 帳戶驗證,還得自己手動調整一些設定(參考這篇:Subversion 從 1.4.x 升級到 1.5 的注意事項)。
近日手癢,試了一下 VisualSVN v1.7。安裝方法非常簡單,幾乎都是按「下一步」就裝完了。在安裝過程中會讓你指定身分驗證機制要採用 Windows 帳戶驗證還是 VisualSVN 本身維護的帳戶,以及要用 HTTP 還是 HTTPS 協定。參考以下畫面:
不用三分鐘就裝完了,裝完之後不需要手動編輯組態檔,也不用其他額外設定,一台 Subversion 伺服器就能開始運作了。連我原本使用 CollabNet Subversion server 建立的檔案庫,也都是直接複製到 VisualSVN 的檔案庫目錄下就能直接使用。不過,我原本的檔案庫就是用 VisualSVN 預設支援的 FSFS 格式,若檔案庫是之前的 BDB 格式,我就不確定能否直接掛上了。
VisualSVN 安裝完後,Windows 系統會多出一項服務:VisualSVN Server,如下圖所示:
此外,程式集裡面還有一個管理工具:VisualSVN Server Manager。你可以利用此工具修改 Subversion server 的相關設定,例如身分驗證方式、傳輸協定、檔案庫所在路徑等等;也可以管理你的檔案庫,包括:檢視檔案庫、設定檔案庫存取權限(No Access、Read Only、Read/Write),甚至編輯 hooks。
缺點
雖然 VisualSVN 有著安裝簡單、對 Windows 帳戶驗證的支援較強(Active Driectory 帳戶也支援)、提供視覺化管理工具等優點,但也有些缺點(這裡指的是 v1.7 的版本),例如:
- 不支援 svn:// 協定(svnserve)
- 預設的檔案庫目錄底下不能再建立子目錄
可是 VisualSVN 預設不支援這樣的目錄配置。以剛才的例子來說,若嘗試 svn checkout http://localhost/svn/Books/ooad,結果會無法取出檔案。解決辦法是在 Apache 的組態檔中增加一個 URI 位置的設定,像這樣:
<Location /svn/Books/>組態檔位於 Program Files\VisualSVN Server\conf\,此目錄底下有兩個組態檔,一個是預設的 httpd.conf,另一個是 httpd-custom.conf。從檔名可以看出,我們只要把自訂組態寫在 httpd-custom.conf 就行了,這樣就不用去動預設的組態檔。附帶一提,你不見得一定要用 SVNParentPath 來指定檔案庫路徑,還有一種方法是設定 SVNPath(適用於檔案庫散置各處,不在同一個父資料夾路徑下的情況)。
DAV svn
SVNListParentPath on
SVNParentPath "D:/SvnRepos/Books"
SVNIndexXSLT "/svnindex.xsl"
AuthName "Subversion Repositories"
AuthType Basic
AuthBasicProvider visualsvn
AuthzVisualSVNAccessFile "D:/SvnRepos/authz-windows"
AuthnVisualSVNUPN Off
require valid-user
</Location>
奇怪的是,CollabNet 和 VisualSVN 都是用 Apache HTTP Server,同樣的 SVNParentPath 設定卻有不同的作用,不知是否為二者採用之 Apache 版本不同所致,或者我漏掉了某個設定?
沒有留言: