svn钩子自动更新代码到代码库


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提交到服务器的代码都会自动更新到指定的代码路径)

(完成)

点赞