跟着我一起實現資源共享,同步開發!!!

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