一:安裝svn
yum install -y subversion
二:創(chuàng)建倉庫
1:創(chuàng)建倉庫目錄
mkdir -p /var/project/test
2:創(chuàng)建倉庫
svnadmin create /var/project/test
創(chuàng)建成功后,在/var/project/test目錄下如下目錄:
drwxr-xr-x. 2 root root 51 1月 30 13:26 conf
drwxr-sr-x. 6 root root 4096 1月 30 13:26 db
-r--r--r--. 1 root root 2 1月 30 13:26 format
drwxr-xr-x. 2 root root 4096 1月 30 13:26 hooks
drwxr-xr-x. 2 root root 39 1月 30 13:26 locks
-rw-r--r--. 1 root root 229 1月 30 13:26 README.txt
conf目錄下是svn的配置目錄,其中包括:
-rw-r--r--. 1 root root 1080 1月 30 13:26 authz #權(quán)限控制
-rw-r--r--. 1 root root 309 1月 30 13:26 passwd #密碼管理
-rw-r--r--. 1 root root 3090 1月 30 13:26 svnserve.conf #SVN服務(wù)進程配置
三:svn配置
1:權(quán)限配置(/var/project/test/conf/authz)
#用戶分組(admin->管理員,development ->開發(fā) other->其他)
[groups]
admin = test1 #管理員用戶test1
development = test2,test3 #開發(fā)用戶test2,test3
other = test4,test5,test6 #其他用戶test4,,test5,test6
#權(quán)限配置
[/]
@admin = rw #管理員讀寫權(quán)限
@development = rw #開發(fā)讀寫權(quán)限
@other = r #其他讀權(quán)限
test7 = rw #test7用戶讀寫權(quán)限
2:密碼配置(/var/project/test/conf/passwd)
#密碼配置,格式為用戶名=密碼,密碼為明文
[users]
test1 = test1
test2 = test2
test3 = test3
test4 = test4
test5 = test5
test6 = test6
test7 = test7
3:SVN服務(wù)進程配置(/var/project/test/conf/svnserve.conf)
[general]
anon-access = none #匿名用戶無權(quán)訪問
auth-access = write #認證用戶可讀寫
password-db = passwd #指定用戶認證密碼文件
authz-db = authz #指定權(quán)限配置文件
四:啟動svn服務(wù)(默認端口號3690)
復(fù)制代碼 代碼如下:
svnserve -d -r /var/project #-d 服務(wù)后臺運行 -r 指定工作目錄,/var/project表示指定工作目錄,注意不能指定倉庫名地址(/var/project/test)
指定端口啟動svn
svnserve -d -r /var/project --listen-port 3691
五:關(guān)閉防火墻,或開啟指定端口號
1:關(guān)閉防火墻
2:開啟指定防火墻
#開啟3690端口
firewall-cmd --zone=public --add-port=3690/tcp --permanent
#刷新配置
firewall-cmd --reload
六:客戶端連接并上傳文件
windows上連接svn
1:新建一個目錄,右擊選擇svn 檢出
2:在版本庫上填寫linux的svn地址 svn://ip:3690/倉庫名 (這里的倉庫名不是/var/project/test而是/test)
2:填寫用戶名密碼
這時候我們可以看到此目錄下生成了一個.svn文件,說明我們已經(jīng)連接上了linux上的svn服務(wù)器
3:上傳文件
現(xiàn)在我們新建一個test.txt文件,在里面隨便填一些信息
(1)右擊選擇add
然后選擇test.txt文件,點擊確定,這時候我們會看到test.txt文件上會多了一個加號
(2):上傳
右擊選擇提交
填寫備注選擇要上傳的文件后點擊確定
這時候我們可以看到test.txt文件上的加號會變成綠色的對號,表示上傳成功
但是這時候我們發(fā)現(xiàn)我們在/var/project/test目錄下根本就沒有找到我們上傳的文件,這是為什么呢?難道我們沒有上傳成功,
這是由于把文件上傳到SVN版本庫后,上傳的文件不再以文件原來的格式存儲,而是被svn以它自定義的格式壓縮成版本庫數(shù)據(jù),存放在版本庫中,svn服務(wù)器版本庫有兩種格式,一種為FSFS,一種為BDB
這時候我們就需要在linux中實現(xiàn)檢出
4:檢出
svn checkout svn://192.168.11.201/test /data/test #svn://192.168.11.201/test表示需要檢出的倉庫地址 /data/test表示需要檢出到哪個目錄下
這是我們可以在/data/test目錄下看到我們之前在客戶端上傳的文件,但是現(xiàn)在問題又來了,我們在客戶端上傳文件之后,不可能每次都在服務(wù)器進行檢出操作吧,那么如何進行自動檢出呢?
5:自動檢出配置
在/var/project/test/hooks目錄下新建一個post-commit文件,post-commit文件添加內(nèi)容為:
#!/bin/sh
REPOS="$1" #倉庫
REV="$2" #版本號
export.UTF-8 #編碼
SVN=/usr/bin/svn #svn地址
WEB=/data/test #要更新的項目目錄
$SVN update $WEB --username test1 --password test1 #--username test1表示設(shè)置用戶名 --password test1表示設(shè)置密碼
將post-commit設(shè)置為可執(zhí)行
chmod +x /var/project/test/hooks/post-commit
到此自動檢出配置完成,不過注意,第一次的時候需要手動檢出,之后就不需要了,到此linux搭建svn服務(wù)器完成
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。