溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

SVN的配置記錄

發(fā)布時(shí)間:2020-07-16 16:02:16 來(lái)源:網(wǎng)絡(luò) 閱讀:496 作者:冰凍vs西瓜 欄目:建站服務(wù)器

場(chǎng)景介紹:最近朋友公司想搭建一套版本控制軟件,讓我推薦下,我跟他說(shuō)SVN或者GIT都可以,最后他選擇使用SVN作為版本控制,我簡(jiǎn)單的跟他寫(xiě)了個(gè)文檔跟他介紹下:

一、SVN是什么?

1、subversion

2、SVN是一個(gè)版本管理工具

3、所有數(shù)據(jù)都集中在檔案庫(kù)里,類似于FTP工具

4、管理任意一個(gè)元素(文件),任何時(shí)刻的變化,ftp只是一個(gè)上傳下載的工具(SVN會(huì)備份并記錄每個(gè)文件每一次的修改更新變動(dòng))

常用的版本管理工具:vss,cvs,svn,git


二、svn與git的簡(jiǎn)單區(qū)別:

1、svn是一個(gè)集中式的版本管理,git是一個(gè)分布式版本控制

2、svn要做版本管理的話,必須要提交到服務(wù)器上,而git,就算服務(wù)器斷開(kāi)的話,還可以在本地做版本控制

3、GIT把內(nèi)容按元數(shù)據(jù)方式存儲(chǔ),而SVN是按文件

4、GIT沒(méi)有一個(gè)全局的版本號(hào),而SVN有

5、GIT的內(nèi)容完整性要優(yōu)于SVN

參考資料:http://www.oschina.net/news/12542/git-and-svn


三、運(yùn)維人員應(yīng)該掌握哪些版本管理:

對(duì)于版本管理系統(tǒng),運(yùn)維人員需要掌握的技術(shù)點(diǎn):

1、安裝、部署、維護(hù)、排障

2、簡(jiǎn)單實(shí)用,很多公司都是開(kāi)發(fā)來(lái)管理,包括建立新倉(cāng)庫(kù)和添加刪除賬號(hào)

3、對(duì)于版本控制系統(tǒng),運(yùn)維人員相當(dāng)于開(kāi)發(fā)商,開(kāi)發(fā)人員是業(yè)主,運(yùn)維搭建的系統(tǒng)為開(kāi)發(fā)人員服務(wù)


四、SVN服務(wù)運(yùn)行模式與訪問(wèn)模式

1、獨(dú)立服務(wù)器訪問(wèn)

訪問(wèn)地址如:svn://svn.test.com/os


2、借助apache等http服務(wù)

訪問(wèn)地址如:http://svn.test.com/os

a)單獨(dú)安裝apache+svn(不要用)

b)CSVN(apache+svn)是一個(gè)單獨(dú)的整合的軟件,帶web界面管理的SVN軟件


3、本地直接訪問(wèn)

file:///application/svndata/os

推薦svn以及csvn web管理方式


五、SVN 的工作原理:

采取客戶端/服務(wù)器模式——在服務(wù)器的版本庫(kù)中保存項(xiàng)目文件的各個(gè)版本, 所有參與協(xié)同開(kāi)發(fā)的程序員在自己本地電腦上保存一個(gè)工作副本。

SVN 支持程序員將本地副本更新到服務(wù)器端的最新版本,也支持將本地副本的最新改變更新到服務(wù)器端, 而且后面的更新不會(huì)覆蓋前面的更新,而是作為一個(gè)新的版本被保存下來(lái)——SVN甚至支持將本地工作副本恢復(fù)為服務(wù)器端保存的某一個(gè)歷史版本。


六、SVN基本操作:

1、檢出(checkout):將一個(gè)服務(wù)器端創(chuàng)建好的項(xiàng)目整個(gè)下載到本地,這是到項(xiàng)目組后參與開(kāi)發(fā)的第一步,只需執(zhí)行一次。

2、更新(update):將本地文件更新為服務(wù)器端的最新版本,通常為每天上班時(shí)或修改公共文件之前執(zhí)行一次。

3、提交(commit):將本地修改提交到服務(wù)器端。通常每天下班前或每實(shí)現(xiàn)一個(gè)功能、完成一個(gè)模塊時(shí)執(zhí)行一次。


七、SVN的安裝與配置:

[root@LVS-DR01 ~]# yum -y install subversion
[root@LVS-DR01 ~]# rpm -qa subversion
subversion-1.7.14-10.el7.x86_64
[root@LVS-DR01 ~]# svnserve --version
svnserve, version 1.7.14 (r1542130)
   compiled Nov 20 2015, 19:25:09
Copyright (C) 2013 The Apache Software Foundation.
This software consists of contributions made by many people; see the NOTICE
file for more information.
Subversion is open source software, see http://subversion.apache.org/
The following repository back-end (FS) modules are available:
* fs_base : Module for working with a Berkeley DB repository.
* fs_fs : Module for working with a plain file (FSFS) repository.
Cyrus SASL authentication is available.
創(chuàng)建svn數(shù)據(jù)目錄,默認(rèn)的svn目錄是/var/svn,需要我們手動(dòng)創(chuàng)建:
[root@LVS-DR01 ~]# mkdir -p /var/svn
使用svnadmin初始化倉(cāng)庫(kù):
[root@LVS-DR01 ~]# svnadmin create /var/svn
[root@LVS-DR01 ~]# tree /var/svn
/var/svn
├── conf
│?? ├── authz
│?? ├── passwd
│?? └── svnserve.conf
├── db
│?? ├── current
│?? ├── format
│?? ├── fsfs.conf
│?? ├── fs-type
│?? ├── min-unpacked-rev
│?? ├── revprops
│?? │?? └── 0
│?? │??     └── 0
│?? ├── revs
│?? │?? └── 0
│?? │??     └── 0
│?? ├── transactions
│?? ├── txn-current
│?? ├── txn-current-lock
│?? ├── txn-protorevs
│?? ├── uuid
│?? └── write-lock
├── format
├── hooks
│?? ├── post-commit.tmpl
│?? ├── post-lock.tmpl
│?? ├── post-revprop-change.tmpl
│?? ├── post-unlock.tmpl
│?? ├── pre-commit.tmpl
│?? ├── pre-lock.tmpl
│?? ├── pre-revprop-change.tmpl
│?? ├── pre-unlock.tmpl
│?? └── start-commit.tmpl
├── locks
│?? ├── db.lock
│?? └── db-logs.lock
└── README.txt
10 directories, 27 files
[root@LVS-DR01 ~]# cd /var/svn/conf/
[root@LVS-DR01 conf]# ll
total 12
-rw-r--r-- 1 root root 1080 Jun 14 14:59 authz
-rw-r--r-- 1 root root  309 Jun 14 14:59 passwd
-rw-r--r-- 1 root root 3090 Jun 14 14:59 svnserve.conf
[root@LVS-DR01 conf]# cp svnserve.conf svnserve.conf.bak

八、開(kāi)啟SVN服務(wù):

[root@LVS-DR01 ~]# systemctl start svnserve.service
[root@LVS-DR01 ~]# systemctl status svnserve.service
[root@LVS-DR01 ~]# systemctl enable svnserve.service
Created symlink from /etc/systemd/system/multi-user.target.wants/svnserve.service 
to /usr/lib/systemd/system/svnserve.service.
SVN默認(rèn)開(kāi)啟3690端口,檢查下:
[root@LVS-DR01 ~]# lsof -i :3690
COMMAND    PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
svnserve 60317 root    3u  IPv4 286761      0t0  TCP *:svn (LISTEN)
[root@LVS-DR01 ~]# netstat -antp | grep svn
tcp        0      0 0.0.0.0:3690            0.0.0.0:*         LISTEN      60317/svnserve

九、修改SVN默認(rèn)位置

在CentOS7下使用yum直接安裝SVN,修改SVN默認(rèn)項(xiàng)目的位置
[root@LVS-DR01 svn]# mkdir -p /dawnpro/svn
[root@LVS-DR01 conf]# vim /etc/sysconfig/svnserve
# OPTIONS is used to pass command-line arguments to svnserve.
# 
# Specify the repository location in -r parameter:
OPTIONS="-r /dawnpro/svn"
#OPTIONS="-r /var/svn"
說(shuō)明:將/var/svn目錄調(diào)整為/dawnpro/svn
[root@LVS-DR01 conf]# systemctl restart svnserve

十、創(chuàng)建svn版本庫(kù)目錄

[root@LVS-DR01 svn]# cd /dawnpro/svn/
[root@LVS-DR01 svn]# mkdir -p EIP EMS SAP
[root@LVS-DR01 svn]# svnadmin create EIP
[root@LVS-DR01 svn]# svnadmin create EMS
[root@LVS-DR01 svn]# svnadmin create SAP
[root@LVS-DR01 svn]# ll
total 0
drwxr-xr-x 6 root root 86 Jun 16 21:56 EIP
drwxr-xr-x 6 root root 86 Jun 16 21:56 EMS
drwxr-xr-x 6 root root 86 Jun 16 21:57 SAP

十一、新建個(gè)目錄統(tǒng)一管理用戶權(quán)限

[root@LVS-DR01 ~]# mkdir -p /dawnpro/svn/conf/
[root@LVS-DR01 ~]# cp /dawnpro/svn/EIP/conf/* /dawnpro/svn/conf/
[root@LVS-DR01 ~]# cd /dawnpro/svn/conf/
[root@LVS-DR01 conf]# ls
authz  passwd

十二、修改權(quán)限管理文件

[root@LVS-DR01 conf]# egrep -v "^#|^$" authz 
[groups]
EIP = EIP01,EIP02
EMS = EMS02,EMS02
SAP = SAP01,SAP02
[/]
* =
[EIP:/]
@EIP = rw
* =
[EMS:/]
@EMS = rw
* =
[SAP:/]
@SAP = rw
* =
說(shuō)明:
a) * = 以上沒(méi)有定義的用戶都沒(méi)有任何權(quán)限
b) @EIP = rw代表EIP組具有rw權(quán)限
[root@LVS-DR01 conf]# egrep -v "^#|^$" passwd 
[users]
admin = admin
EMS01 = EMS01
EMS02 = EMS02
EIP01 = EIP01
EIP02 = EIP02
SAP01 = SAP01
SAP02 = SAP02
[root@LVS-DR01 ~]# egrep -v "^#|^$" /dawnpro/svn/EIP/conf/svnserve.conf 
[general]
anon-access = none
auth-access = write
password-db = /dawnpro/svn/conf/passwd
authz-db = /dawnpro/svn/conf/authz
realm = EIP
[root@LVS-DR01 ~]# egrep -v "^#|^$" /dawnpro/svn/EMS/conf/svnserve.conf 
[general]
anon-access = none
auth-access = write
password-db = /dawnpro/svn/conf/passwd
authz-db = /dawnpro/svn/conf/authz
realm = EMS
[root@LVS-DR01 ~]# egrep -v "^#|^$" /dawnpro/svn/SAP/conf/svnserve.conf 
[general]
anon-access = none
auth-access = write
password-db = /dawnpro/svn/conf/passwd
authz-db = /dawnpro/svn/conf/authz
realm = SAP

十三、測(cè)試下權(quán)限配置的結(jié)果

a)使用SVN客戶端訪問(wèn)SVN服務(wù)器

SVN的配置記錄

b)使用EIP01賬號(hào)訪問(wèn)svn://10.10.10.101/EIP

SVN的配置記錄

c)測(cè)試上傳"04-git誕生記.png",上傳成功(過(guò)程太短,我就沒(méi)截圖)

SVN的配置記錄

d)換個(gè)賬號(hào)進(jìn)行測(cè)試(使用EMS01賬號(hào)進(jìn)行測(cè)試)

SVN的配置記錄

e)提示沒(méi)有權(quán)限(測(cè)試成功)

SVN的配置記錄

說(shuō)明,SVN服務(wù)修改完配置文件,不需要重啟SVN服務(wù)就可以直接生效。






向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI