windows上的svn服務器遷移到linux

一、導出版本

具體遷移步驟如下:
1、先將代碼庫通過svn dump命令備份出來,我現在需要遷移test這個代碼,則命令如下:
cd G:\ 因爲我的版本庫在g盤下
svnadmin dump -r 0:HEAD svn > test.dump
這樣xinsi庫將備份到test.dump文件中了。


2、搭建linux服務器端的svn
首先安裝svn,裝完以後創建同名的版本庫
1)我在home目錄下創建了名爲svn的版本庫,並啓動svn指定在home目錄

cd /home

svnadmin create svn

svnserver -d -r /home

注意:

假如我的服務器ip地址爲:115.36.45.124,則再windows端我做check時,版本路徑應該是這樣的:

svn://115.36.45.124/svn 而不是 http://115.36.45.124/svn或者svn://115.36.45.124/home/svn等

因爲我們在啓動svn服務時已指定了/home所以不要加/home了

2)導入版本庫到新的版本庫svn中

svnadmin load svn < test.dump

3)修改配置文件

cd svn/conf

做相應的修改。

需要注意的地方
1 首先找到原來的資源庫所在的位置 ,然後在cmd方式下進入到所在的目錄再執行導出語句
2 導入時同樣也是要到資源庫的位置cmd方式下執行導入
3 如果cmd方式下svnadmin提示錯誤,可能是需要將bin目錄添加到path路徑中
注意svnadmin dump時是在服務端的操作,而不是在客戶端的操作,所以剛開始dump D:\盤的東西是不行的
應該dump的是G:\盤的服務端svn的版本庫

======================遇到的問題==========================

問題1:在修改文件後show log無法顯示日誌,上面的時間會自動在2016年和1970年間跳,而且設置不了時間。
解決方法:
1.編輯svnserve.conf,設置“anon-access=none”
2.在authz中添加
[/]
* =

即可 。

=============================轉載========================

2.2 創建SVN 版本庫

[root@singledb ~]# mkdir /u02/svn

[root@singledb ~]# svnadmin create /u02/svn/davesvn--davesvn爲版本庫名稱

2.3 SVN 配置

創建版本庫後,在這個目錄下會生成3個配置文件:

[root@singledb conf]# pwd

/u02/svn/davesvn/conf

[root@singledb conf]# ls

authzpasswdsvnserve.conf

1svnserve.conf svn服務配置文件下。

2passwd用戶名口令文件。

3authz權限配置文件。

svnserve.conf 文件,該文件配置項分爲以下5項:

anon-access控制非鑑權用戶訪問版本庫的權限。

auth-access控制鑑權用戶訪問版本庫的權限。

password-db指定用戶名口令文件名。

authz-db:指定權限配置文件名,通過該文件可以實現以路徑爲基礎的訪問控制。

realm:指定版本庫的認證域,即在登錄時提示的認證域名稱。若兩個版本庫的認證域相同,建議使用相同的用戶名口令數據文件

Passwd 文件

我們在svnserve.conf文件裏啓用這個文件。然後配置如下:

[root@singledb conf]# cat passwd

### This file is an example password file for svnserve.

### Its format is similar to that of svnserve.conf. As shown in the

### example below it contains one section labelled [users].

### The name and password for each user follow, one account per line.

[users]

# harry = harryssecret

# sally = sallyssecret

dave = davepwd

tianlesoftware = tianlesoftwarepwd

authz 文件

在網上找到一個很好的配置例子:

[groups]

admin = john, kate

devteam1 = john, rachel, sally

devteam2 = kate, peter, mark

docs = bob, jane, mike

training = zak

--這裏把不同用戶放到不同的組裏面,下面在設置目錄訪問權限的時候,用目錄來操作就可以了。

# 爲所有庫指定默認訪問規則

# 所有人可以讀,管理員可以寫,危險分子沒有任何權限

[/]--對應我測試裏的:/u02/svn 目錄

* = r

@admin = rw

dangerman =

# 允許開發人員可以完全訪問他們的項目版本庫

[proj1:/]

@devteam1 = rw

[proj2:/]

@devteam2 = rw

[bigproj:/]

@devteam1 = rw

@devteam2 = rw

trevor = rw

# 文檔編寫人員對所有的docs目錄有寫權限

[/trunk/doc]

@docs = rw

# 培訓人員可以完全訪問培訓版本庫

[TrainingRepos:/]

@training = rw

下面我們來配置我們的authz文件:

[root@singledb conf]# cat authz

[groups]

admin = dave

dev=tianlesoftware

[davesvn:/]

@admin = rw

@dev = rw

[root@singledb conf]#

2.4 啓動和停止SVN服務

1)啓動SVN服務:

[root@singledb conf]# svnserve -d -r /u02/svn

-d表示後臺運行

-r 指定根目錄是/u02/svn

[root@singledb conf]# ps -ef | grep svn

root459210 18:04 ?00:00:00 svnserve -d -r /u02/svn

root459437090 18:04 pts/100:00:00 grep svn

2)停止SVN服務:

ps -aux |grep svn

kill -9 進程殺掉

. 客戶端連接SVN 服務器

3.1 安裝TortoiseSVN 客戶端

下載地址在第一節已說明。

3.2 找到自己項目的目錄,右擊,進行SVN 操作

1)新建測試目錄svn,進入後右鍵,點checkout


0_1294246352OwOP.gif


0_1294246360J87f.gif

SVN 服務器的IP地址和版本庫名稱。

0_1294246368cl2S.gif

新建個文件svn.txt. 把這個文件上傳到SVN服務器(add):

0_1294246375315K.gif


0_1294246384gGfo.gif


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