前言
本文講解Linux系統(tǒng)下如何搭建SVN服務器喊熟,詳細說明各配置項的功能忽孽,最終實現(xiàn)可管控多個項目的復雜配置陨倡。
SVN是subversion的縮寫,是一個開放源代碼的版本控制系統(tǒng)峦椰,通過采用分支管理系統(tǒng)的高效管理聂使,實現(xiàn)最終集中式的管理壁拉。
目前很多互聯(lián)網(wǎng)公司在使用SVN,優(yōu)點在于使用方便柏靶、易于管理弃理。與之對應的分布式的版本控制系統(tǒng)Git則更加靈活。
搭建
安裝SVN
//Ubuntu
apt-get install subversion
//Centos
yum install subversion
查看是否安裝成功屎蜓,可以查看版本痘昌。
svnserve --version
提示版本1.13.0,說明已安裝成功炬转。
創(chuàng)建版本庫目錄
創(chuàng)建SVN版本庫目錄辆苔,為后面創(chuàng)建版本庫提供存放位置,也是最后啟動SVN服務的根目錄扼劈。
我們在/usr路徑下創(chuàng)建svn目錄作為版本庫目錄驻啤。
cd /usr
mkdir svn
Linux系統(tǒng)各目錄知識延伸:
image所以,將SVN庫存放在用戶文件目錄/usr下比較合理荐吵。
創(chuàng)建SVN版本庫
在上一步建立路徑基礎(chǔ)上骑冗,創(chuàng)建版本庫,如dev先煎。
cd /usr/svn
svnadmin create dev
創(chuàng)建成功后贼涩,可以查看到dev目錄下生成的文件。
修改SVN配置
進入conf目錄薯蝎,查看需要修改的配置文件遥倦。
cd /usr/svn/dev/conf
ls
配置文件:
- authz:權(quán)限配置文件,控制讀寫權(quán)限
- passwd:賬號密碼配置文件
- svnserve.conf:svn服務器配置文件
修改svnserve.conf文件
vim svnserve.conf
去掉anon-access良风、auth-access谊迄、password-db闷供、authz-db、realm幾項前的注釋符號“#”统诺。
配置項含義:
- anon-access = none|read|write 決定非授權(quán)用戶的訪問級別歪脏。none 表示無訪問權(quán)限,read 表示只讀粮呢,write 表示可讀可寫婿失,默認為 read。
- auth-access = none|read|write 決定授權(quán)用戶的訪問級別啄寡,使用與上面相同的訪問級別豪硅。默認為 write。
- password-db = filename 指定賬號密碼數(shù)據(jù)庫文件名挺物。filename 是相對倉庫中 conf 目錄的位置懒浮,也可以設(shè)置為絕對路徑,默認為passwd识藤。
- authz-db = filename 指定權(quán)限配置文件名砚著,filename 是相對倉庫中 conf 目錄的位置,也可以設(shè)置為絕對路徑痴昧,默認為authz稽穆。
- realm = realm-name 指定版本庫的認證域,即在登錄時提示的認證域名稱赶撰。若兩個版本庫的認證域相同舌镶,建議使用相同的賬號密碼數(shù)據(jù)庫文件passwd。
認證域知識延伸:
在SVN客戶端登錄時豪娜,會提示realm認證域餐胀,如下圖的認證域
My First Repository
。image
修改passwd文件
vim passwd
只需在末尾添加賬號和密碼侵歇,格式 賬號 = 密碼
骂澄,如user1 = 123456
吓蘑,可添加多個惕虑。
修改authz文件
vim authz
在根目錄下設(shè)置user1、user2讀寫權(quán)限:
如果用戶比較多磨镶,可以使用groups形式設(shè)置分組team1溃蔫,并在根目錄下指定分組@team1的權(quán)限:
如果想設(shè)置其他用戶的權(quán)限,可以通過*
設(shè)置琳猫,如設(shè)置除@team1分組外其他用戶只讀權(quán)限:
[/]
@team1 = rw
* = r
啟動SVN服務
執(zhí)行SVN啟動命令伟叛,其中參數(shù)-d
表示以守護進程的方式啟動, -r
表示設(shè)置的根目錄脐嫂。
svnserve -d -r /usr/svn/
關(guān)閉svn命令:
killall svnserve
本地訪問SVN服務
在windows系統(tǒng)中统刮,安裝TortoiseSVN軟件紊遵,創(chuàng)建一個本地目錄,右鍵選擇SVN Checkout測試下侥蒙,URL填寫svn://IP/dev
暗膜,dev替換成你創(chuàng)建的版本庫名稱。
輸入passwd配置好的用戶鞭衩。
Checkout completed学搜,SVN訪問成功,這就Nice了~
擴展
設(shè)置查看log日志
想查看提交的svn log日志论衍,需要進一步配置瑞佩。
編輯svnserve.conf,設(shè)置:
anon-access = none
編輯authz文件中添加:
[/]
* =
這樣通過鼠標右鍵TortoiseSVN->show log就可以查看svn提交的歷史記錄了坯台。
多個項目管控配置
SVN配置文件是很靈活的炬丸,如果想使用統(tǒng)一的賬戶和權(quán)限去管控多個項目,可以將多個項目的authz和passwd文件統(tǒng)一放在一處蜒蕾,在多個項目的svnserve.conf文件中配置這兩個文件的絕對路徑御雕,并在authz中對不同的項目設(shè)置用戶訪問權(quán)限。
如:a滥搭、b酸纲、c、d這4個用戶瑟匆,p1闽坡、p2兩個項目,其中a愁溜、b只能訪問p1疾嗅,c、d只能訪問p2冕象。
創(chuàng)建版本庫目錄
mkdir /usr/svn
創(chuàng)建多個版本庫
cd /usr/svn
svnadmin create p1
svnadmin create p2
創(chuàng)建管理用戶權(quán)限目錄
mkdir /var/svn/conf
cd /p1/conf
cp authz passwd /var/svn/conf
修改配置文件
修改p1的svnserve.conf文件:
anon-access = none
auth-access = write
password-db = /var/svn/conf/passwd
authz-db = /var/svn/conf/authz
realm = p1
修改p2的svnserve.conf文件:
anon-access = none
auth-access = write
password-db = /var/svn/conf/passwd
authz-db = /var/svn/conf/authz
realm = p2
password-db和authz-db都使用統(tǒng)一管理用戶權(quán)限目錄代承,使用絕對路徑。
修改password-db文件
[users]
a = 123
b = 123
c = 123
d = 123
修改authz文件
[groups] //分組
p1user = a,b
p2user = c,d
[/]
* = #以上沒有定義的用戶都沒有任何權(quán)限
[p1:/] //p1的訪問控制渐扮,c论悴、d無法訪問
@p1user = rw
[p2:/] //p2的訪問控制,a墓律、b無法訪問
@p2user = rw
對password-db和authz文件的修改立即生效膀估,不必重啟svn。
啟動svn服務
svnserve -d -r /usr/svn/
訪問不同項目SVN
同樣TortoiseSVN軟件耻讽,選擇SVN Checkout測試察纯。
訪問項目p1 URL
svn://IP/p1
訪問項目p2 URL
svn://IP/p1
統(tǒng)一的配置文件,不同項目限定了不同用戶訪問,這樣就實現(xiàn)了管控多個項目的SVN配置饼记。
以上就是Linux系統(tǒng)搭建SVN服務器詳細教程的所有內(nèi)容香伴,希望對大家有所幫助。
你學“廢”了么具则?