svn关联网站目录
svn版本库创建
svnadmin creat /svndata/project/develop
1
创建的版本库下会存在以下信息
ls /svndata/project/develop/
conf db format hooks locks README.txt
1
2
2
conf目录下会存在密码认证、配置文件
ls /svndata/project/develop/conf/
authz passwd svnserve.conf
1
2
2
为方便管理权限,可以把authz passwd复制到/svndata/svnpasswd下进行管理
mkdir /svndata/svnpasswd
cd /svndata/project/develop/conf/
cp authz passwd /svndata/svnpasswd
1
2
3
2
3
修改svnserve.conf指向认证文件
vim /svndata/project/develop/conf/svnserve.conf
// 修改以下两行
password-db = /svndata/svnpasswd/passwd
authz-db = /svndata/svnpasswd/authz
1
2
3
4
2
3
4
配置svn钩子与网站目录同步
svn版本库:/svndata/project/develop
关联网站目录:/www/web/zhibo_tianze_cn/public_html
首先使用checkout把需要关联的网站目录变成一个工作副本
svn checkout svn://xx.xx.xx.xx/develop /www/web/ze_cn/public_html
1
修改版本库下的钩子文件
ls /svndata/project/develop/hooks/
pre-commit.tmpl start-commit.tmpl
post-commit.tmpl pre-lock.tmpl
post-lock.tmpl pre-revprop-change.tmpl
post-revprop-change.tmpl pre-unlock.tmpl
post-unlock.tmpl
1
2
3
4
5
6
2
3
4
5
6
hooks(钩子)文件说明:
# start-commit 提交前触发事务
# pre-commit 提交完成前触发事务
# post-commit 提交完成时触发事务
# pre-revprop-change 版本属性修改前触发事务
# post-revprop-change 版本属性修改后触发事务
需要修改post-commit.tmpl这个钩子
cp post-commit.tmpl post-commit //拷贝并改名生效
vim post-commit
改为以下内容:
\#!/bin/sh
export LANG=en_US.UTF-8
SVN='/usr/bin/svn'
$SVN update /www/web/ze_cn/public_html/ --username=admin --password=123456
1
2
3
4
5
6
7
2
3
4
5
6
7
修改钩子文件权限为755或者777
chmod 777 post-commit
1
启动svn
svnserve -d -r /svndata/project/ --log-file /svndata/log
1
--log-file 参数是指定日志文件,可不加
可以打开svn客户端上传一个文件,测试是否会更新到关联的网站目录。
由于新创建的svn版本库是空的,可以使用下面命令把网站目录里的文件导入到版本库中
svn import /www/web/zhibo_tianze_cn/public_html/ svn://localhost/develop -m "test"
1
-m 参数是说明内容,引号内的说明随便写
#!/bin/bash
\#这是一个利用hooks将远程svn服务器项目同步到本地web站点目录下
\#远程服务器地址:101.200.75.217,本地服务器地址:123.57.176.140
\#获取svn服务器webphp项目trunk最新版本号
xsv=`svn info svn://101.200.75.215/webphp/trunk|sed -n '/Last Changed Rev/p'|awk '{print $4}'`
\#获取本地web站点版本号
bdv=`svn info /usr/local/nginx/html/pinyi/|sed -n '/Last Changed Rev/p'|awk '{print $4}'`
\#通过比较两个版本号,判断svn服务器代码是否更新,如果更新就使用"svn update"命令更新本地web站点代码
if [ $xsv -gt $bdv ]
then
cd /usr/local/nginx/html/pinyi
svn update
chown www /usr/local/nginx/html/pinyi -R
fi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
上次更新: 2022/06/12, 15:48:09