之前的做法是客户端提交代码之后,再去服务器端项目中 svn up 一下来更新代码,让服务器端的项目更新到最新版本。可以编写一个 post-commit 钩子脚本来实现服务器端代码的自动更新,它在 SVN 每次 svn commit 之后运行。
服务器端 SVN 版本仓库中,进入某个项目,有一个 hooks 文件夹:
进入 hooks 文件夹,创建一个文件 post-commit:
#!/bin/sh
REPOS="$1"
REV="$2"
export LC_ALL="zh_CN.UTF-8"
export LANG="en_US.UTF-8" SVN_PATH=/usr/bin #svn安装路径
WEB_PATH=/home/wwwroot/***** #web项目所在
SVN_USER=huangdi #svn用户名
SVN_PASS=huangdi #svn密码
LOG_PATH=/tmp/svn.log
$SVN_PATH/svn update $WEB_PATH || exit 1
exit 0
保存退出,就可以实现服务器端代码自动更新了。
ps:post-commit 需要有执行权限:
chown svn:svn post-commit chmod +x post-commit