2012年3月15日 星期四

Subversion 出現 svn: Unrecognized URL scheme for 'http://.....' 時的解決方式

前言

公司在針對各專案,一直都是使用Subversion(簡稱svn)這套軟體來針對各專案的檔案做版本的控制。至於何謂Subversion以及要如何使用這套軟體可參考這篇文章,這裡就不再贅述。這篇文章僅用來記錄在安裝完新的主機後,當我們要從遠端某台svn主機要把專案的檔案取出時出現以下訊息:
svn: Unrecognized URL scheme for 'http://www.sample.com/svn/bnq/trunk'
的解決方法。現在就讓我們來看看吧!

解說

一般來說,當我們費了千辛萬苦搞定一台主機後,如果要把網站的檔案利用svn取出放到新主機上,我們通常會下指令:
svn co http://www.sample.com/svn/trunk /var/www/html/
所謂的co其實是check out的縮寫,意思就是要把檔案取出;http://www.sample.com/svn/trunk 就是svn主機放置該專案的檔案位置;/var/www/html/ 則是我們打算把從svn取回檔案後要放置的位置。正常來說下完這行指令後依據svn主機的設定會要你做登入的認證,如果輸入正確則會開始看到檔案一個個放到我們設定的位置。但有時候卻會出現如前言中的訊息時又該怎麼辦呢?其實這是因為svn預設提供兩種方式來取得檔案,一種是file://,另一種是svn://,並沒有提供http://的方式來取檔。因此我們要幫svn掛上支援http方式的取檔模組,也就是neon這套程式。以下說明如何安裝neon。

安裝neon

neon(官方網站:http://www.webdav.org/neon/)提供HTTP及WebDAV的client端函式庫。安裝指令如下:
1. tar xvzf neon-0.28.3.tar.gz
2. tar xvzf subversion-1.5.5.tar.gz
3. mv neon-0.28.3 subversion-1.5.5/neon
4. cd subversion-1.5.5
5. ./configure
6. make && make install
這裡我們採用把neon掛入subversion下再重新安裝subversion的方式。指令1.2分別把neon與subversion解壓縮,指令3表示我們把解壓縮後的neon資料夾整個搬到subversion目錄下的neon資料夾中,指令4則是連到subversion目錄;至於指令5.6則是一般在linux下常見的編譯及安裝指令。當編譯及安裝完畢後,我們要怎麼確定svn已經有支援http方式的取檔方式呢?我們可以下以下指令:
svn --version
畫面如果有出現以下訊息
* ra_neon : Module for accessing a repository via WebDAV protocol using Neon.
- handles 'http' scheme
即表示我們現在可以透過svn使用http的方式來取檔了!

沒有留言:

張貼留言