【轉】svn http://提示svn: Unrecognized URL scheme錯誤


轉自:http://blog.csdn.net/l241002209/article/details/8547943

SVN這個東西雖然不好用(當然也是因為自身沒有重視,但是誰讓GIT這么好用呢…!),但是公司暫時用的還是SVN,因此還是不得不每天應對它。

由於一直用 phpstorm 因此SVN的操作都是GUI,非常方便(推薦…!),但是今天由於有個需求我需要寫個命令讓SVN自動更新,因此需要在終端中直接使用SVN的命令行工具,但是…關鍵時刻就給我掉鏈子了!

在終端中輸入:

1
svn update

然后就悲劇了,提示項目的svn是1.7及以上的,我的svn版本太低!表示記得前一陣子剛剛更新過了的。用 svn version 一看,果然是1.6.

但是1.7確實是記得手動更新過的,不甘心,在目錄中找,果然在 /usr/local/bin/中找到了1.7的svn版本,然后在 /usr/bin/ 中找到了1.6版本的svn!

系統默認先調用 /usr/bin 中的!

於是定位到原因,估計是升級系統到 moutain lion 的時候,又自動在 /usr/bin 中給我安裝了系統自帶的 1.6 的svn,於是覆蓋了我的1.7的…悲劇!

於是…最簡單的方法,就是把1.7的覆蓋掉 local/bin 中的1.6版本!覆蓋完之后,在終端中查看,果然 version 變成1.7了,於是繼續 svn update ,結果接續報錯:

1
svn: E170000:Unrecognized URL scheme for http*

F******k!

好吧,Google之,得到答案如下: 答案

沒細看…反正SVN要使用 http 類型的倉庫需要某塊支持,然后報這個錯誤意味着它可能找不到一個名為 neon 的模塊了。因此需要重新編譯安裝svn,告訴它這個模塊在哪里。

因此做法是:

  • 下載最新的 neon ,然后 ./configure , make , make install 安裝好
  • 配置SVN源碼 :
1
$ ./configure --with-ssl --with-apr=/usr/local/apache2/bin/apr-config --with-apr-util=/usr/local/apache2/bin/apu-config --with-neon=/usr/local
  • 編譯安裝: make , make install

在配置SVN源碼之前,細心的我還是發現了我的路徑里面不存在/usr/local/apache2 這個目錄,看了下面的評論,這個應該是在你要配置一台svn服務器時使用,因此像我這種情況,就直接使用

1
$ ./configure --with-ssl --with-neon=/usr/local
 
 
 
安裝neon:
./configure --with-ssl=openssl
make && make install
安裝svn:
./configure --with-apr=/usr/local/apr/ --with-apr-util=/usr/local/apr/ --with-neon=/usr/local/neon/ PREFIX=/usr/local/svn/ 
make && make install
 

在linux下安裝完subversion1.4+apache2.2.4之后,能夠正確的增加庫。但是在使用svn http://...的時候提示svn: Unrecognized URL scheme的錯誤。
1、查看了subversion的資料之后認識到了問題所在。
Subversion 使用外掛系統來存取檔案庫. 目前有三個這樣的外掛: ra_local 可以存取本地檔案庫, ra_dav 可以透過 WebDAV 存取檔案庫, 而 ra_svn 可以透過 svnserve 伺服器來進行本地或遠端的存取。當你想要在 Subversion 進行一個作業時, 用戶端會試著依 URL schema 動態載入一個外掛. file:// URL 會試著載入 ra_local, 而 http:// URL 會試著輸入 ra_dav。
執行svn --verion輸出以下內容
svn,版本 1.4.3 (r23084)
   編譯於 Jan 26 2007,15:45:15
版權所有 (C) 2000-2007 CollabNet。
Subversion 是開放源代碼軟件,請參閱 http://subversion.tigris.org/
此產品包含由 CollabNet (http://www.Collab.Net/)開發的軟件。
可使用以下的倉庫存取 (RA) 模塊: 
* ra_svn : 使用svn網絡協議訪問倉庫的模塊。
- 處理“svn”方案
* ra_local : 訪問本地磁盤的倉庫模塊。
- 處理“file”方案
確實沒有發現支持ra_dav的模塊。
2、./configure --help
閱讀輸出的內容發現了一個--with-neno的選項
--with-neon=PREFIX      Determine neon library configuration based on
                          'PREFIX/bin/neon-config'. Default is to search for
                          neon in a subdirectory of the top source directory
                          and then to look for neon-config in $PATH.
查找neon的相關信息
http://www.webdav.org.neno
neon is an HTTP and WebDAV client library, with a C interface. Featuring
下載neon-0.25.5.tar.gz
tar -xvzf neon-0.25.5.tar.gz
cp -rf neon-0.25.5 ./subversion-1.4.2/neon
***注意:此處neon要和configure,Makefile在同一個文件夾下,而且名字也要正確。
3、重新編譯subversion
./configure --prefix=/usr/local/subversion --with-apr=/usr/local/apache2 --with-apr-util=/usr/local/apache2 --with-ssl > conflog.txt
****注意:一定不要加--with-neon選項,不加的話,會默認在
./subversion-1.4.2下查找neon-config
如果你增加了--with-neon選項,就需要寫成 --with-neon=PREFIX    查看./configure --help的解釋是: 
Determine neon library configuration based on 'PREFIX/bin/neon-config'. Default is to searc
h for neon in a subdirectory of the top source directory and then to look for neon-config in $PATH.

make
make install

**注意:按照上面方法,安裝的可執行文件在/usr/local/subversion/bin下。
需要到/usr/local/bin下增加對應的符號鏈接文件。
ln -S svn /usr/local/subversion/bin/svn
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM