一直以來,都是使用 Collabnet Subversion Server,而且每隔半年一年,若發現有新版本,就會嘗試將現有的版本升級。幾個月前,看到 Collabnet Subversion Server 改名字了,叫做 Collabnet Subversion Edge,最近就抽空試裝了一下。好加在,就只是拿自己的 PC 試裝而已,沒有直接升級正式機的 Subversion Server。
我裝的版本是 Collabnet Subversion Edge 1.3.0,內含 OpenSSL(所以支援 HTTPS 協定)。裝完之後,發現果然跟之前的版本差蠻多的。這個版本內含 Subversion Server 1.6.x,而且已經把 Apache 跟它自己的東西整合得更緊密,另外還提供了 web-based 管理介面。如果你想要升級到這個版本,請注意以下兩個重要變動:
+ SvnRepository
+ MyThesis
+ Books
+ vsts
+ ooad
+ Projects
+ Prj1
+ Prj2
其中的 MyThesis 資料夾本身就是個單獨的版本庫,專門給論文寫作之用,Books 和 Projects 則是單純的資料夾,底下的各個子目錄才是真正的版本庫。以 Books\ooad 這個版本庫為例,我可以用類似 http://my-server/svn/Books/ooad 的網址來存取。可是裝了新版 Subversion Edge 1.3 之後,我試了好多種方法,組態檔改來改去,就是沒辦法成功。
新版 Subvesion Edge 的 web 管理介面只能建立像 MyThesis 這種位於第一層目錄的版本庫,這不要緊,反正裡面跑的還是 Apache server,原本的 httpd.conf 組態檔設定應該還能用才對。我只要把版本庫建立好,然後修改 httpd.conf,在裡面加上如 <location /svn/Books> 的區段就行了。結果並不是我想的那麼單純。
Collabnet Subversion Edge 的組態檔,預設是放在 c:\csvn\data\conf\ 目錄下,除了 httpd.conf 之後,裡面還多出了好幾個組態檔,像是 csvn_main_httpd.conf、csvn-wrapper.conf、svn_viewvc_httpd.conf、viewvc.conf 等等,讓人一下子不知道究竟該修改哪個組態檔才好,而且其中幾個組態檔的檔頭都有警告訊息,叫你別亂改:
# DO NOT EDIT THIS FILE IT WILL BE REGENERATED AUTOMATICALLY BY COLLABNET SUBVERSION
我先嘗試修改 httpd.conf,畢竟這是 Apache server 原本就有的組態檔。我從原先可以運作的組態檔中,把 <location> 區段複製過來,內容類似這樣:
重啟 Subversion Server 之後,用瀏覽器開啟網址 http://localhost/svn/Books/ooad,結果顯示錯誤:Could not open the requested SVN filesystem。
嘗試修改其他組態檔,結果都徒勞無功。這樣反覆 try 了好多次,花了好多時間,開始覺得自己有點傻,而新版本的組態檔設計也讓我開始反感。尋思:何不乾脆改用別的 subversion 套件?
兩年前,我曾試裝過 VisualSVN Server,當時還寫了一篇短文:使用 VisualSVN 迅速建立 Subversion 伺服器。印象中,這個套件很容易安裝,組態設定也很方便。於是,就下載了 VisualSVN Server 2.1.5 來試試看。
安裝過程還是跟以前一樣簡單,只有一個步驟要稍微看一下:
此步驟可以讓你指定:
我裝的版本是 Collabnet Subversion Edge 1.3.0,內含 OpenSSL(所以支援 HTTPS 協定)。裝完之後,發現果然跟之前的版本差蠻多的。這個版本內含 Subversion Server 1.6.x,而且已經把 Apache 跟它自己的東西整合得更緊密,另外還提供了 web-based 管理介面。如果你想要升級到這個版本,請注意以下兩個重要變動:
- 不再支援 svnserve 或 SSH 協定
- 不再支援 BerkeleyDB (BDB) 格式的檔案庫
+ SvnRepository
+ MyThesis
+ Books
+ vsts
+ ooad
+ Projects
+ Prj1
+ Prj2
其中的 MyThesis 資料夾本身就是個單獨的版本庫,專門給論文寫作之用,Books 和 Projects 則是單純的資料夾,底下的各個子目錄才是真正的版本庫。以 Books\ooad 這個版本庫為例,我可以用類似 http://my-server/svn/Books/ooad 的網址來存取。可是裝了新版 Subversion Edge 1.3 之後,我試了好多種方法,組態檔改來改去,就是沒辦法成功。
新版 Subvesion Edge 的 web 管理介面只能建立像 MyThesis 這種位於第一層目錄的版本庫,這不要緊,反正裡面跑的還是 Apache server,原本的 httpd.conf 組態檔設定應該還能用才對。我只要把版本庫建立好,然後修改 httpd.conf,在裡面加上如 <location /svn/Books> 的區段就行了。結果並不是我想的那麼單純。
Collabnet Subversion Edge 的組態檔,預設是放在 c:\csvn\data\conf\ 目錄下,除了 httpd.conf 之後,裡面還多出了好幾個組態檔,像是 csvn_main_httpd.conf、csvn-wrapper.conf、svn_viewvc_httpd.conf、viewvc.conf 等等,讓人一下子不知道究竟該修改哪個組態檔才好,而且其中幾個組態檔的檔頭都有警告訊息,叫你別亂改:
# DO NOT EDIT THIS FILE IT WILL BE REGENERATED AUTOMATICALLY BY COLLABNET SUBVERSION
我先嘗試修改 httpd.conf,畢竟這是 Apache server 原本就有的組態檔。我從原先可以運作的組態檔中,把 <location> 區段複製過來,內容類似這樣:
<location /svn/Books> DAV svn SVNParentPath "d:/SvnRepository/Books" AuthType Basic AuthUserFile "D:/SvnRepository/MyAccount.pwd" AuthName "Subversion Repository" Require valid-user </location>
重啟 Subversion Server 之後,用瀏覽器開啟網址 http://localhost/svn/Books/ooad,結果顯示錯誤:Could not open the requested SVN filesystem。
嘗試修改其他組態檔,結果都徒勞無功。這樣反覆 try 了好多次,花了好多時間,開始覺得自己有點傻,而新版本的組態檔設計也讓我開始反感。尋思:何不乾脆改用別的 subversion 套件?
兩年前,我曾試裝過 VisualSVN Server,當時還寫了一篇短文:使用 VisualSVN 迅速建立 Subversion 伺服器。印象中,這個套件很容易安裝,組態設定也很方便。於是,就下載了 VisualSVN Server 2.1.5 來試試看。
安裝過程還是跟以前一樣簡單,只有一個步驟要稍微看一下:
此步驟可以讓你指定:
- 存放版本庫的實體路徑;
- 是否使用 HTTPS 加密協定(幾次被入侵偵測系統冤枉之後,我一律使用 HTTPS);
- 身分驗證的方式:使用 Subversion 內建的帳戶驗證,還是 Windows 整合式驗證。
裝完之後,會自動開啟 Windows 介面的 UI 管理工具:VisualSVN Server Manager。我先建立了一個使用者帳戶,並設定好密碼,然後再建立版本庫。跟 Collabnet Subversion Edge 的管理工具一樣,其建立版本庫的功能也沒有支援前面所說的子目錄結構。於是,我到安裝路徑 c:\Program Files\VisualSVN Server\conf\ 底下,用記事本開啟 httpd-custom.conf,把前面提過的 <location /svn/Books> 區段內容貼上去,存檔。然後重啟 VisualSVN Server,再用瀏覽器開啟網址 https://localhost/svn/Books/ooad,輸入帳號密碼之後....Ya! 瀏覽器成功顯示 ooad 版本庫的內容。從安裝到設定、建立使用者帳戶、建立版本庫、修改組態檔、以及測試版本庫能否順利存取,不用十分鐘就搞定了。
當然,VisualSVN Server Manager 還是不支援版本庫根目錄底下的子目錄,碰到這類子目錄時,它會顯示如下圖的錯誤訊息:
這倒沒有太大關係,眼下只要能夠先把我既有的版本庫都掛上來,都能順利運作就夠了。
跟 Collabnet Subversion Edge 比起來,VisualSVN Server 的組態檔設計單純多了,就只有 httpd.conf 和 httpd-custom.conf 兩個檔案。自訂的組態內容最好是寫在 httpd-custom.conf 裡面,比較好維護(httpd.conf 會 include 這個組態檔)。
目前就決定先使用 VisualSVN Server 一陣子看看,用戶端的部分,則仍是使用 TortoiseSVN。
我自己也都是用VisualSVN + TortoiseSVN ^^
回覆刪除簡單方便。
公司內的考量就比較多了...
不知貴公司使用的版本控制系統是哪一套?
回覆刪除