轉自:http://blog.csdn.net/l241002209/article/details/8547943php
SVN這個東西雖然很差用(固然也是由於自身沒有重視,可是誰讓GIT這麼好用呢…!),可是公司暫時用的仍是SVN,所以仍是不得不天天應對它。html
因爲一直用 phpstorm
所以SVN的操做都是GUI,很是方便(推薦…!),可是今天因爲有個需求我須要寫個命令讓SVN自動更新,所以須要在終端中直接使用SVN的命令行工具,可是…關鍵時刻就給我掉鏈子了!linux
在終端中輸入:web
而後就悲劇了,提示項目的svn是1.7及以上的,個人svn版本過低!表示記得前一陣子剛剛更新過了的。用 svn version
一看,果真是1.6.apache
可是1.7確實是記得手動更新過的,不甘心,在目錄中找,果真在 /usr/local/bin/
中找到了1.7的svn版本,而後在 /usr/bin/
中找到了1.6版本的svn!bash
系統默認先調用 /usr/bin
中的!服務器
因而定位到緣由,估計是升級系統到 moutain lion
的時候,又自動在 /usr/bin
中給我安裝了系統自帶的 1.6
的svn,因而覆蓋了個人1.7的…悲劇!網絡
因而…最簡單的方法,就是把1.7的覆蓋掉 local/bin
中的1.6版本!覆蓋完以後,在終端中查看,果真 version
變成1.7了,因而繼續 svn update
,結果接續報錯:phpstorm
1 |
svn: E170000:Unrecognized URL scheme for http* |
F******k!svn
好吧,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的錯誤。
一、查看了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的模塊。
二、./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在同一個文件夾下,並且名字也要正確。
三、從新編譯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