这些钩子会在不同的点触发事务
# 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 <a target="_blank" href="file:///usr/svn/weixin">file:///usr/svn/weixin</a>
如果我只想导入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'这个文件即可