轉自:http://blog.csdn.net/l241002209/article/details/8547943
SVN這個東西雖然不好用(當然也是因為自身沒有重視,但是誰讓GIT這么好用呢…!),但是公司暫時用的還是SVN,因此還是不得不每天應對它。
由於一直用 phpstorm 因此SVN的操作都是GUI,非常方便(推薦…!),但是今天由於有個需求我需要寫個命令讓SVN自動更新,因此需要在終端中直接使用SVN的命令行工具,但是…關鍵時刻就給我掉鏈子了!
在終端中輸入:
1 |
|
然后就悲劇了,提示項目的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 |
|
F******k!
好吧,Google之,得到答案如下: 答案
沒細看…反正SVN要使用 http 類型的倉庫需要某塊支持,然后報這個錯誤意味着它可能找不到一個名為 neon 的模塊了。因此需要重新編譯安裝svn,告訴它這個模塊在哪里。
因此做法是:
- 下載最新的 neon ,然后
./configure,make,make install安裝好 - 配置SVN源碼 :
1 |
|
- 編譯安裝:
make,make install
在配置SVN源碼之前,細心的我還是發現了我的路徑里面不存在/usr/local/apache2 這個目錄,看了下面的評論,這個應該是在你要配置一台svn服務器時使用,因此像我這種情況,就直接使用
1 |
|
在linux下安裝完subversion1.4+apache2.2.4之后,能夠正確的增加庫。但是在使用svn http://...的時候提示svn: Unrecognized URL scheme的錯誤。
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
