1. 安裝SVN服務器軟件apache
2. 在home下建立svn根目錄服務器
mkdir /home/svnrootsvn
3. 在 /home/svnroot下建立Project1 , Project 2, Project3 三個項目文件夾,這三個文件夾要存放不一樣項目的SVN版本庫。blog
4. 一樣在 /home/svnroot中建立 CodeAuth 文件夾,該文件夾將保存 passwd 和authz文件,在第6步中實現。進程
5. 建立項目權限控制
cd /home/svnrootit
svnadmin create Project1服務器端
svnadmin create Project2軟件
svnadmin create Project3配置
分別建立了三個項目的版本庫,版本庫目錄conf中存在passwd 、authz、和 svnserve.conf 文件
passwd - 用於存放本svn庫的用戶名和密碼
authz - 存放本svn庫的訪問受權信息
svnserve.conf 文件爲存放本svn庫的全局訪問控制信息
6. 將passwd 、authz文件拷貝到/home/svnroot/CodeAuth中,將三個項目下conf目錄中的passwd 和 authz文件刪除
7. 修改 三個項目中conf目錄下的svnserve.conf 文件,最快的辦法是修改一個項目下的svnserve.conf 文件,使用它覆蓋其餘兩個項目下的svnserve.conf 文件。
svnserve.conf 修改成
[general]
anon-access = none auth-access = write
password-db = http://www.cnblogs.com/CodeAuth/passwd
authz-db = http://www.cnblogs.com/CodeAuth/authz
8. 修改/home/svnroot/CodeAuth下的passwd文件爲
[users] admin=admin001
9. 修改/home/svnroot/CodeAuth下的Authz文件爲
[groups] admin_group=admin
[Project1:/]
@admin_group=rw
*=
[Project2:/]
@admin_group=rw
*=
[Project3:/]
@admin_group=rw
*=
10. 啓動SVN服務
svnserve -d -r /home/svnroot
OK,服務器端配置完畢!
-----------------------------------------------------------------------------
分組
vi passwd
//用戶名 = 密碼
[users]
eg1 = 123
eg2 = 123
vi authz
[groups] //分組
admin = eg1,eg2
[project1:/] //工程1的訪問控制,guest1,2沒法訪問
@admin = rw
或
eg1 = rw
eg2 = rw
[project2:/]
@admin = rw
----------------------------------------------------------------------------------------------
殺掉svn 進程
killall svnserve
-----------------------------------------------------------------------------------------------
將一臺服務器上已有的SVN倉庫數據總體遷移到另一臺機器上,要保留全部的版本號和版本信息,須要如下過程來解決
No.1 將準備要遷移的倉庫導出 命令: svnadmin dump 倉庫名 > svn_dump
No.2 在新的服務器上建立心的倉庫 命令: svnadmin create SVNROOT
No.3 導入剛導出的文件svn_dump 命令: svnadmin load SVNROOT < svn_dump
// 注意,以上操做會致使全部的配置丟失,好比密碼、權限控制等,只要將原有的conf文件覆蓋新的就能夠了
在整個操做的過程當中要注意倉儲路徑問題,爲避免出錯,可使用絕對路徑來表示以上內容,僅以No.3 作實例解析
svnadmin load D:\SVNROOT < D:\svn_dump 解析:新的倉儲SVNROOT就建立在D盤根目錄下,而導出的文件也已將放在了本地的D盤根目錄下
網上有提供一種直接將原倉庫目錄copy到另外一臺機器上,而後修改apache 的svn路徑指向新的地址的作法,我也嘗試過一次,發現有丟失信息,具體不詳,因此不推薦
還有一個問題,我查看個人原始準備導出的倉庫文件大小隻有2.2G左右,而使用svnadmin 命令導出後的文件卻有5G之多,中間的差異我也不甚瞭解,因此推薦使用svn的命令導入倉庫
更換svn源
svn sw --relocate 舊地址 新地址