0712-2888027 189-8648-0214
微信公众号

孝感风信网络科技有限公司微信公众号

当前位置: 主页 > 技术支持 > Linux > Linux SVN服务器自动提交数据至Web服务器同步

Linux SVN服务器自动提交数据至Web服务器同步

时间:2017-11-01来源:风信网 点击:
在本地开发的过程中,我们使用TortoiseSVN提交最新的修改数据至SVN服务器,但SVN服务器中的数据需要checkout至Web服务器中,才能使Web服务器中的数据同步SVN,通过手动操作太过麻烦,我们可以利用SVN自带的hooks机制进行同步,操作过程如下:

导出一份SVN文件到网站目录

svn co svn://localhost/svn1 /www/web/weixin

svn://localhost/svn1为服务器SVN所在路径
/www/web/weixin为网站目录路径


注意事项1:

每次使用svn co提醒你是否保存密码,这样每次都会出现交互提示信息,我们需要去掉。
修改/root/.subversion/server中的相关内容为:

store-passwords = no
store-plaintext-passwords = no

注意事项2:

如遇到UUID不一致错误信息,可采用以下解决方法:

svn: Repository UUID '4ecc44b9-f3ad-4d43-b838' doesn't match expected UUID '7699d06a-2fa1-49ae-958b'

解决方案:

具体办法如下:
1、首先查看项目的所有者的UUID
# svnlook uuid /www/svn1
xxxxxxx

2、更新项目的UUID
# svnadmin setuuid /www/svn1 xxxxxxx

3、查看一下更新后的UUID
# svnlook uuid /www/svn1

修改SVN中post-commit.tmpl文件

cd /www/svn1/hooks

mv post-commit.tmpl  post-commit

更改post-commit权限:

chmod +x post-commit

编辑post-commit文件:

vi post-commit

post-commit文件内容如下:

#!/bin/sh
REPOS="$1"
REV="$2"

export LANG=zh_CN.UTF-8 #防止乱码
svn update /www/web/weixin  #更新svn
echo `date`,`whoami`,$REPOS,$REV >> //www/svn1/hooks/svn_hook.log #记录时间日志信息
chown -R www:www /www/web/weixin #更改网站目录用户组及用户

完成之后,结束svn进程

killall svnserve

重启SVN服务

svnserve -d -r /www

再使用TortoiseSVN提交新的修改,SVN和Web服务器中的数据都同步成功。
栏目列表
推荐内容
热点内容
展开