上篇介绍 Linux 搭建SVN 服务器 你可以看到仓库下面有个hooks文件夹:/usr/svn/weixin
这些钩子会在不同的点触发事务
# start-commit 提交前触发事务
# pre-commit 提交完成前触发事务
# post-commit 提交完成时触发事务
# pre-revprop-change 版本属性修改前触发事务
# post-revprop-change 版本属性修改后触发事务
svn同步版本库到网站目录就是利用post-commit钩子:
假设您的
网站目录为:/home/wwwroot/default/weixin
svn仓库目录:/usr/svn/weixin
第一步:到网站目录(/home/wwwroot/weixin) checkout一份SVN版本库中的项目:
# cd /home/wwwroot/default/weixin
# svn co file:///usr/svn/weixin
如果我只想导入weixin下的文件则在后面加空格点,"svn co file:///usr/svn/weixin ."
第二步:编辑SVN版本库中的钩子
# cd /usr/svn/weixin/hooks/
# cp post-commit.tmpl post-commit
# vi post-commit
输入如下
REPOS="$1"
REV="$2"
#SVN=/usr/local/svn/bin/svn
WWW=/home/wwwroot/default/weixin/
export LANG="en_CN.UTF-8"
svn update $WWW --username **** --password **** -–no-auth-cache
增加脚本可执行性权限
chmod +x post-commit
报错处理:
1、出现如下错误时 svn: warning: environment variable LANG is en_CN.UTF-8
将post-commit中的export LANG="en_CN.UTF-8"改为export LANG="en_US.UTF-8"即可
2、svn:Faild to add directory 'x/x/x/x/Data': an unversioned directory of the same name already exists ( 一个同名的未版本化的目录已经存在 )
删除'x/x/x/x/Data'这个文件即可