SVN
一、SVN說明
是subversion的縮寫,是一個開放源代碼的版本控制系統,通過採用分支管理系統的高效管理,簡而言之就是用於多個人共同開發同一個項目,實現共享資源,實現最終集中式的管理
二、centos7 搭建svn服務器
1、安裝svn服務器:
yum install subversion -y
2、配置svn服務器:
建立svn版本庫根目錄及相關目錄即svndata及密碼權限命令svnpasswd;
mkdir -p /opt/svn
3、啓動svn服務:
svnserve -d -r /opt/svn/
參數:
-d:表示後臺運行守護模式;
-r:表示svn服務的根目錄;
檢測svn端口3690是否已經監聽:
netstat -lntup | grep 3690
4、建立版本庫:
在/opt/svn/目錄下,創建項目test:
svnadmin create /opt/svn/test
會自動創建出一系列固定的目錄:
主要目錄說明:
conf目錄:主要是配置文件、登錄用戶、密碼認證;
hooks目錄:主要是svn的鉤子腳本模板,使用時去掉.tmpl後綴即可,鉤子腳本實際上就是代碼提交前後,可以分別執行的腳本,腳本可用perl、shell、python等語言編寫,該目錄裏面腳本文件名代表提交代碼執行的不同時機,如提交代碼前執行的腳本pre-commit,提交代碼後執行的腳本post-commit,更多詳情自行學習;
5、修改配置文件:
vim /opt/svn/test/conf/svnserve.conf
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz
anon-access:未登錄用戶的權限
auth-access:已登錄用戶的權限
password-db: 用戶密碼文件目錄位置
authz-db : 權限文件目錄位置
如果把密碼文件和授權文件統一管理
可以把用戶和密碼文件放到自定義的目錄中:
mkdir /opt/svnpasswd/
cd /opt/svn/test4/config
cp authz passwd /opt/svnpasswd/
vim /opt/svn/test/conf/svnserve.conf
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz
a、配置passwd文件:
[users]
zn=zn123
dzw=dzw123
ycw=ycw123
cyh=cyh123
passwd配置文件說明:
格式爲:svn賬號=svn密碼
賬號和密碼可隨意指定;
b、配置authz:
1.權限配置文件中出現的用戶必須已經在用戶配置文件中定義;
2.對權限配置文件的修改立即生效,不必重啓svn;
3.一個用戶組可包含多個用戶,用戶間用逗號分隔;
4.版本庫目錄格式:
[<版本庫>://項目目錄]
@<用戶組名> = <權限>
<用戶名> = <權限>
其中,方括號內部分可有多種寫法:
[/]:表示根目錄及以下,根目錄是svnserve啓動時指定的,[/]表示對全部版本庫設置權限;
[repos:/]:表示對版本庫repos設置權限;
[repos:/sadoc]:表示對版本庫repos中的sadoc項目設置權限;
[repos:/sadoc/oldboy]:表示對版本庫repos中的sadoc項目的oldboy目錄設置權限;
權限主體可以是用戶、用戶組或*,用戶組在前面加@,*表示全部用戶;
權限可以是w、r、wr和空,空表示沒有任何權限;
authz中每個參數都要頂格寫,開頭不能有空格;
對於組,要以@開頭,而用戶不需要;
單版本庫,不需要指定版本庫的名稱
[groups]
# harry_and_sally = harry,sally
# harry_sally_and_joe = harry,sally,&joe
kf4=zn,ycw,dzw,cyh
kf5=zn,dzw
[/]
@kf5=rw
ycw=rw
cyh=r
多版本控制配置
[aliases]
# joe = /C=XZ/ST=Dessert/L=Snake City/O=Snake Oil, Ltd./OU=Research Institute/CN=Joe Average
[groups]
kf4=zn,ycw,dzw,cyh
kf5=zn,dzw
[test3:/]
@kf4=rw
[test4:/]
@kf5=rw
6、重啓svn服務:
//多版本
pkill svnserve
svnserve -d -r /opt/svn
//單版本
pkill svnserve
svnserve -d -r /opt/svn/test4
注意:
更改svnserve.conf需要重啓svn,更改authz、passwd文件時不需要重啓;
檢查3690端口是否處於監聽狀態,至此svn服務器搭建完成;下面是svn客戶端的安裝與使用;
三、主要命令說明
1.導入svn原始目錄:
先創建svn目錄:
mkdir /data/oldboy -p
在其目錄下,創建3個目錄:
cd /data/oldboy; mkdir trunk branch tags -p
導入:
svn import /data/oldboy svn://192.168.255.12/sadoc/ -m "import tree"
2.從svn庫提取數據:
mkdir /data/test
svn checkout svn://101.200.48.99/test4 D:/ --username zn --password zn123
或簡寫:
svn co svn://192.168.255.12/sadoc /data/test --username=oldboy --password=oldboysecret
或:
svn co file:///application/svndata/sadoc /data/test --username=oldboy --password=oldboysecret
注意:首次使用svn用checkout;後面再用提取數據不用再使用用戶名和密碼:
3.查看svn中的數據:
svn list --verbose svn://101.200.48.99/test4
或(都一樣):
svn ls --verbose svn://101.200.48.99/test4
svn cat svn://101.200.48.99/test4
4.向svn中提交數據:
svn add /data/test/trunk/test2.txt
svn ci -m "test2.txt" /data/test/trunk/test2.txt
ci簡稱:commit;
co簡稱:checkout;
注意:提交時,先add,再commit;