svn钩子自动更新代码到代码库
例子:服务器svn路径 /opt/svn/zixun/
第一步添加用户和密码
/opt/svn/zixun/conf/authz 文件中添加用户
格式: 用户 = rw(读写权限)
/opt/svn/zixun/conf/authz 文件中添加用户密码
格式:用户 = 123456(密码)
第二步钩子文件操作
进入钩子目录:
1. cd /opt/svn/zixun/hooks/post-commit
创建钩子文件post-commit并备份文件
2. cp post-commit.tmpl post-commit
3. 钩子post-commit文件内容创建 通过vim post-commit
把一下内容根据自己实际需求写入post-commit文件
export LANG=zh_CN.UTF-8
(这句话比较重要,如果客户端跟服务器编码不一样会出现同步失败)
SVN_PATH=/usr/bin/svn
代表你的svn服务文件地址 如果是通过yum安装的话,或者已经注册了svn服务,则可以直接使用svn,不需要输入全路径)
WEB_PATH=/usr/local/xxx/xxx
你的web目录(将要同步过去的web项目路径)
LOG_PATH=/tmp/svn_update.log
同步代码记录日志
echo whoami,$REPOS,$REV >> $LOG_PATH
$SVN_PATH update --username colin --password colin88 $WEB_PATH --no-auth-cache >> $LOG_PATH
4. 设置脚本所属用户组,www为web服务运行账户和组
chown www:www post-commit
5.添加脚本执行权限
chmod +x post-commit
第三步重启svn
开启svn服务
先kill掉svn ps -ef|grep svn
根据查到的进程号直接删除
启动svn svnserve -d -r /opt/svn/
第四步 初始化服务器代码库
1. 进入空白代码库路径
cd /usr/local/xxx/xxx
2.初始化代码
svn checkout http://192.168.1.1/svn/
(之后所有通过svn提交到服务器的代码都会自动更新到指定的代码路径)
(完成)