svn钩子是svn提供的一组由svn事件触发的特别有用的程序,可以提供svn之外的一些附加功能。
比如svn提交后,自动将提交的文件同步到线上web服务器。
接下来我们就来实现这个功能
首先我们回顾一下上一篇文章讲的关于svn的安装和使用方法
这篇文章中讲到我们在/root/svn/目录下,创建了一个shop仓库
1.进入到仓库下的hooks目录
cd /root/svn/shop/hooks
2.复制一份post-commit.tmpl重命名为post-commit
cp post-commit.tmpl post-commit
3.编辑post-commit这个文件
vim post-commit
4.把里面内容全部替换掉,换成下面这三行(/www/wwwroot/shop是我们线上web项目的目录,zhiboblog是svn的用户名,123456是svn的密码,按照你自己的实际情况改成你自己的)
#!/bin/sh
export LANG=en_US.UTF-8
svn update /www/wwwroot/shop --username zhiboblog --password 123456
export LANG=en_US.UTF-8
svn update /www/wwwroot/shop --username zhiboblog --password 123456
5.赋予post-commit可执行权限
6.用svn检出shop项目到/www/wwwroot/shop目录
svn checkout svn://127.0.0.1/shop /www/wwwroot/shop
使用svn钩子后,这样以后每次svn提交,都会自动同步到线上web服务器