服務端安裝步驟:
準備
去subversion官網http://subversion.apache.org/download/下載tar.gz的安裝包
另外還需要到http://apr.apache.org/download.cgi下載subversion必須的apr和apr-util的tar.gz的包
Apr安裝
1解壓
tar -zxvf apr-1.4.6.tar.gz
2 指定apr安裝目錄
./configure --prefix=/home/yy/apr
3 編譯安裝
make
make install
Apr-util安裝
1解壓
tar -zxvf apr-util-1.4.1.tar.gz
2 指定apr-util安裝目錄
./configure --prefix=/home/yy/apr-util --with-apr=/home/yy/apr
注意需要使用—with-apr指定apr的安裝目錄
3 編譯安裝
make
make install
Subversion安裝
1解壓
tar -zxvf subversion-1.7.5.tar.gz
2指定svn安裝目錄
./configure --prefix=/home/yy/subversion --with-apr=/home/yy/apr --with-apr-util=/home/yy/apr-util --whith-ssl
若提示如下錯誤:
configure: error: Subversion requires SQLite
則需要:
到http://www.sqlite.org/下載sqlite-amalgamation的jar包,解壓將sqlite3.c拷貝到/home/yy/subversion-1.7.5/sqlite-amalgamation目錄下,若沒有sqlite-amalgamation目錄需要新建
3 編譯安裝
make
make install
服務端配置
資源庫創建
手動新建資源庫目錄
mkdir svn/project
利用svn命令創建資源庫
svnadmin create /home/yy/svn/project
資源庫配置
進入/home/yy/svn/project/conf目錄 修改默認配置文件配置,包括svnserve.conf、passwd、authz 配置相關用戶和權限
啓動資源庫
svnserve -d -r /home/yy/svn/
Svn資源庫啓動默認使用的端口爲3690
-r 配置方式決定了資源庫訪問方式
例子中svn倉庫下的資源庫都可以使用svn://10.1.60.125/資源庫1..n的方式進行訪問
連接資源庫
使用eclipse svn插件通過svn://10.1.60.125/資源庫1..n的方式訪問
資源庫遷移
導出資源庫到dump文件
svnadmin dump /home/yy/svn/project > /home/yy/svndump/project_20120717.dump
將dump文件拷貝到目標機器
導入dump文件到新的資源庫位置
svnadmin load /home/yy/svn/dest < /home/yy/svndump/project_20120717.dump
附錄(安裝配置過程中可能出現的問題)
1,配置authz時,沒有注意svnserve啓動參數-r所指定的目錄。
這裏有兩種情況:
A:-r直接指定到版本庫(稱之爲單庫svnserve方式)
比如,有一個庫project1,位於D:\svn\project1
使用以下命令啓動svnserve
1. svnserve -d -r D:\svn\project1
複製代碼
在這種情況下,一個svnserve只能爲一個版本庫工作
authz文件如果配置成下面這樣就是錯的,
1. [groups]
2. admin=user1
3. dev=user2
4. [project1:/]
5. @admin=rw
6. @doc=r
複製代碼
應該配置成
1. [groups]
2. admin=user1
3. dev=user2
4. [/]
5. @admin=rw
6. @doc=r
複製代碼
因爲[project1:/]表示庫project1的根目錄,而按上面的啓動參數,是沒有庫的概念的。
使用類似這樣的URL:svn://192.168.0.1/ 即可訪問project1
B:-r指定到版本庫的上級目錄(稱之爲多庫svnserve方式)
同樣,有一個庫project1,位於D:\svn\project1
如果使用以下命令啓動svnserve
1. svnserve -d -r D:\svn
複製代碼
這種情況,一個svnserve可以爲多個版本庫工作,
這時如果想限制指定庫的指定目錄,就應該指定具體的庫,像這樣
1. [groups]
2. admin=user1
3. dev=user2
4. [project1:/]
5. @admin=rw
6. @doc=r
複製代碼
如果此時你還用[/],則表示所有庫的根目錄,同理,[/src]表示所有庫的根目錄下的src目錄
使用類似這樣的URL:svn://192.168.0.1/project1 即可訪問project1
這樣的URL:svn://192.168.0.1/project2 即可訪問project2
2,對中文目錄進行權限控制時,沒有將權限文件authz改爲utf-8格式。
svn對於非英文文件名和目錄名使用utf-8格式編碼處理,要對中文目錄進行正確控制,
應該使用無BOM的utf-8格式,如何將默認的文件轉爲utf-8,
我使用的是UltraEdit的菜單"ASCII
to UTF-8 (Unicode Editing)"。在UltraEdit的配置中,可以設置有無BOM