您好,登錄后才能下訂單哦!
1、介紹
Subversion是一個(gè)自由,開源的版本控制系統(tǒng),這個(gè)版本庫就像一個(gè)普通的文件服務(wù)器,不同的是,它可以記錄每一次文件和目錄的修改情況。這樣就可以很方面恢復(fù)到以前的版本,并可以查看數(shù)據(jù)更改細(xì)節(jié)。目前,Subversion已成為主流的開源代碼版本管理軟件之一,簡稱SVN。
2、SVN相關(guān)命令了解
svn:命令行客戶端
svnadmin:用來創(chuàng)建、調(diào)整或修復(fù)版本庫的工具
svnserve:svn服務(wù)程序
svndumpfilter:過濾svn版本庫轉(zhuǎn)儲數(shù)據(jù)流的工具
svnsync:svn數(shù)據(jù)同步工具,實(shí)現(xiàn)另外存一份相同的
svnlook:用來查看辦本科中不同的修訂版和事務(wù)
3、兩種運(yùn)行模式
3.1 利用svnserve作為獨(dú)立服務(wù)運(yùn)行,通過svn協(xié)議訪問
3.2 借助mod_dev_svn模塊,由apache服務(wù)運(yùn)行(Web/DAV),通過http或https協(xié)議訪問。想了解此運(yùn)行模式可以參考著篇博文:http://lizhenliang.blog.51cto.com/7876557/1340646
4、安裝與部署
對于Ubuntu來說,裝個(gè)SVN是件很容易的事,可以直接通過apt軟件包管理安裝。
4.1 直接安裝
# sudo apt-get install subversion
4.1 創(chuàng)建版本庫
# sudo mkdir –p /srv/svn/eweb
# sudo svnadmin create /srv/svn/eweb
4.2 了解版本庫
# 進(jìn)入版本庫查看生成的相關(guān)文件
# ls /srv/svn/eweb
conf db format hooks locks README.txt
# 我們主要關(guān)心的是conf和db文件,conf文件夾下是存放主配置文件和用戶、權(quán)限位置,db文件夾是存放svn轉(zhuǎn)儲后的數(shù)據(jù)。
# ls /srv/svn/eweb/conf
authz passwd svnserve.conf
# authz文件是設(shè)置用戶權(quán)限,passwd文件是存儲用戶及密碼,svnserve.conf是主配置文件,先配置主配置文件。
4.3配置版本庫
# sudo vi svnserve.conf #將以下參數(shù)去掉注釋(要頂格)
[general]
anon-access = none #匿名訪問權(quán)限,默認(rèn)read,none為不允許訪問
auth-access = write #認(rèn)證用戶權(quán)限
password-db = passwd #用戶信息存放文件,默認(rèn)在版本庫/conf下面,也可以絕對路徑指定位置
authz-db = authz
# sudo vi passwd #格式是用戶名=密碼,采用明文密碼
[users]
xiaoming = 123
zhangsan = 123
lisi = 123
zhangchengjie = zhangchengjie@!2016
# sudo vi authz
[groups] #定義組的用戶
manager = xiaoming
php = zhangsan,lisi,zhangchengjie
[eweb:/] #以根目錄起始的eweb版本庫manager組為讀寫權(quán)限
@manager = rw
[eweb:/media] #php組對eweb版本庫下media目錄為讀寫權(quán)限
@php = rw
4.4 啟動(dòng)svn服務(wù)
# sudo svnserve -d -r /srv/svn --listen-port 21321
4.5關(guān)閉svn服務(wù)
#sudo pkill svnserve
5.創(chuàng)建web訪問目錄
#mkdir -p /var/www/eweb 我的web在這里根據(jù)自己機(jī)器環(huán)境定
5.1設(shè)置鉤子post-commit
#sudo cp /srv/svn/eweb/hooks/post-commit.tmpl /srv/svn/eweb/hooks/post-commit
#sudo vim /srv/svn/eweb/hooks/post-commit
添加如下內(nèi)容
export LANG="en_US.UTF-8"
SVN=/usr/bin/svn
WEB=/var/www/eweb
$SVN update $WEB --no-auth-cache --non-interactive --username zhangchengjie --password 'zhangchengjie@!2016'
chown -R www:www $WEB
chmod +x post-commit
從新啟動(dòng)服務(wù)
#sudo pkill svnserve
#sudo svnserve -d -r /srv/svn --listen-port 21321
6.在終端下執(zhí)行如下命令
#svn co svn://127.0.0.1:21321/eweb /var/www/eweb --username zhangchengjie--password ‘zhangchengjie@!2016’
注意:127.0.0.1/eweb是svn倉庫名,/var/www/eweb是web目錄,如果在password中密碼使用特殊字符需要用單引號引用,否則會(huì)報(bào)錯(cuò)bash不解析。
7.客戶端驗(yàn)證,寫phpinfo文件通過瀏覽器訪問測試。
8.為了方便以后啟動(dòng)關(guān)閉在sbin建立svn啟動(dòng)腳本
vim /sbin/svn
1 #!/bin/bash
2 #autor:boy
3 #date:2016/7/28
4 # startup/stop/restart svn services
5
6 ####### start ##############
7
8 case "$1" in
9 start)
10 sudo svnserve -d -r /srv/svn --listen-port 21321
11 ;;
12
13 stop)
14 sudo pkill svnserve
15 ;;
16
17 *)
18 echo "Usage:start,stop"
19 ;;
20
21 esac
chmod 755 /sbin/svn
sudo /sbin/svn stop
sudo /sbin/svn start
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。