linux下svn服務器安裝及資源庫遷移方法

服務端安裝步驟:

準備

去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的根目錄,而按上面的啓動參數,是沒有庫的概念的。
使用類似這樣的URLsvn://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目錄
使用類似這樣的URLsvn://192.168.0.1/project1 即可訪問project1
這樣的URLsvn://192.168.0.1/project2 即可訪問project2

2,對中文目錄進行權限控制時,沒有將權限文件authz改爲utf-8格式。

svn
對於非英文文件名和目錄名使用utf-8格式編碼處理,要對中文目錄進行正確控制,
應該使用無BOMutf-8格式,如何將默認的文件轉爲utf-8
我使用的是UltraEdit的菜單&quot;ASCII to UTF-8 (Unicode Editing)&quot;。在UltraEdit的配置中,可以設置有無BOM

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章