svn的使用與搭建
1、客戶端的svn環(huán)境
客戶端的下載與使用沒啥可說(shuō)的宛畦,使用小烏龜锉试,一路到底就行了猫十。
2、服務(wù)器端的svn環(huán)境
2.1 subversion的安裝
下面以centos為例說(shuō)明拖云,最簡(jiǎn)單的yum來(lái)安裝贷笛,然后站點(diǎn)假設(shè)以lnmp環(huán)境運(yùn)行,站點(diǎn)目錄放在 /home/wwwroot
宙项。
yum -y install subversion
2.2 subversion的配置
2.2.1 建立版本庫(kù)目錄
mkdir svndata # 目錄名自己隨意設(shè)置
2.2.2 建立版本庫(kù)
cd /home/svndata # 切到版本庫(kù)目錄乏苦,此時(shí)目錄為空
svnadmin create newproject # 創(chuàng)建一個(gè)名為 newproject 的版本庫(kù),目錄發(fā)生變化
創(chuàng)建一個(gè)名為 newproject 的版本庫(kù)之后尤筐,會(huì)生成/home/svndata/newproject
目錄汇荐,它的目錄結(jié)構(gòu)如下:
cd newproject
[root@localhost newproject]# ll
總用量 16
drwxr-xr-x 2 root root 51 10月 23 16:36 conf
drwxr-sr-x 6 root root 4096 10月 23 16:39 db
-r--r--r-- 1 root root 2 10月 23 15:55 format
drwxr-xr-x 2 root root 4096 10月 23 16:39 hooks
drwxr-xr-x 2 root root 39 10月 23 15:55 locks
-rw-r--r-- 1 root root 229 10月 23 15:55 README.txt
2.2.3 版本庫(kù)配置
cd conf/
1、修改svnserve.conf
盆繁,nowproject版本庫(kù)的配置掀淘,主要為找到如下,然后取消相應(yīng)注釋或修改相應(yīng)名稱油昂。
anon-access = read # 控制非認(rèn)證用戶訪問版本庫(kù)的權(quán)限
auth-access = write # 控制認(rèn)證用戶訪問版本庫(kù)的權(quán)限
password-db = passwd # 指定用戶名密碼文件
authz-db = authz # 指定權(quán)限認(rèn)證配置文件
realm = newproject # 指定版本庫(kù)的認(rèn)證域革娄,即在登錄時(shí)提示的認(rèn)證域名稱
2、修改authz
冕碟,即指定權(quán)限認(rèn)證配置文件拦惋。
# 這里把不同用戶放到不同的組里面,用戶組自己隨意命名安寺,下面在設(shè)置目錄訪問權(quán)限的時(shí)候厕妖,用目錄來(lái)操作就可以了。
[groups]
allowed = zhangsan,async # 全部權(quán)限
master = lisi # 主程人員權(quán)限
assist = wangmazi,zhaowu # 協(xié)助人員權(quán)限
[newproject:/] # 表示根目錄(/home/svndata/newproject)挑庶,newproject: 對(duì)應(yīng)前面配置的realm = newproject
@allowed = rw # 可讀寫
@master = r # 只讀
@assist = r # 只讀
* =
[newproject:/project] # 表示project目錄(/var/svn/newproject/project)
@allowed = rw # 可讀寫
@master = rw # 可讀寫
@assist = rw # 可讀寫
* =
3言秸、修改passwd
,即指定用戶名密碼文件挠羔。
[users]
async = async
zhangsan = 123456
lisi = 123456
wangmazi = 123456
zhaowu = 123456
2.3 svn啟動(dòng)
啟動(dòng)svn井仰。
svnserve -d -r /home/svndata/ # 這里接的是版本庫(kù)目錄埋嵌,不是其下面對(duì)應(yīng)的某個(gè)版本庫(kù)
# -d : 守護(hù)進(jìn)程 -r : svn數(shù)據(jù)版本庫(kù)目錄
查看svn進(jìn)程破加。
ps -aux | grep svnserve # 默認(rèn)端口為:3690
這里面注意下防火墻的設(shè)置,iptables 放開端口雹嗦,iptables如何刪除指定的規(guī)則范舀。
然后加入開機(jī)自啟動(dòng),略過(guò)了罪。
2.4 站點(diǎn)同步設(shè)置(svn鉤子)
1锭环、站點(diǎn)目錄同步svn。
假設(shè)站點(diǎn)目錄要放在/home/wwwroot/文件夾下泊藕,techweb是站點(diǎn)的目錄文件夾辅辩,一般與svn的代碼倉(cāng)同名,執(zhí)行:
svn co svn://ip地址/techweb
然后根據(jù)要求先輸入服務(wù)器密碼,再輸入用戶名和密碼玫锋,再yes蛾茉。
2、再配置svn的鉤子撩鹿。
cd /home/svndata/newproject/hooks
cp post-commit.tmpl post-commit
chmod +x post-commit
修改post-commit
谦炬,即提交之后執(zhí)行動(dòng)作文件。
export LANG=en_US.UTF-8 # utf-8 編碼
SVN=/usr/bin/svn # svn命令路徑
WEB=/home/wwwroot/techweb # 站點(diǎn)路徑
$SVN update $WEB --username async --password async # 提交后執(zhí)行的命令节沦,這里使用鉤子用戶键思,在每次提交后會(huì)自動(dòng)執(zhí)行此條命令
chown -R www:www $WEB # 更改目錄所屬
3、服務(wù)器里執(zhí)行下鉤子文件的命令甫贯,即:
SVN=/usr/bin/svn
WEB=/home/wwwroot/techweb
$SVN update $WEB --username async --password async
命令復(fù)制下吼鳞,然后命令行執(zhí)行,再yes叫搁。
4赖条、重啟svn
[root@localhost home]# killall svnserve
[root@localhost home]# svnserve -d -r svndata/
5、測(cè)試上傳