一、導出版本
具體遷移步驟如下:
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
(1)svnserve.conf: svn服務配置文件下。
(2)passwd:用戶名口令文件。
(3)authz:權限配置文件。
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:
SVN 服務器的IP地址和版本庫名稱。
新建個文件svn.txt. 把這個文件上傳到SVN服務器(add):