linux下自动同步svn代码到生产环境
参考:http://www.ilsm.cn/automatically-synchronized-production-environment-svn-code-under-linux.html
首先必须安装好svn,进入服务器配置的环境目录(如:/var/www),运行svn co ‘代码库路径’ 检出一份代码到该目录下,如果代码库和生产环境在同一台服务器则运行svn co svn://localhost/你的代码库名称
为了可以在修改完代码提交到svn服务器后,web服务器直接同步.需要配置svn的钩子,打开hooks目录,
可以看到有一个post-commit.tmpl文件,这是一个模板文件,
复制一份放在此目录下(即当前hooks目录下),命名为post-commit,并将其用户组设为www-data(nginx默认用户了),并设置为可执行:
chown www-data:www-data post-commit chmod +x post-commit
删掉代码,增加内容为:
1 export LANG=zh_CN.UTF-8 2 3 REPOS="$1" 4 REV="$2" 5 SVN_PATH=/usr/local/svn/bin/svn 6 WEB_PATH=/var/www/heping 7 LOG_PATH=/var/log/svn/svn_updata.log 8 `source /etc/profile` 9 echo "#########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` "#####################" >> $LOG_PATH 10 echo `whoami`,$REPOS,$REV >> $LOG_PATH 11 $SVN_PATH update --username heping --password heping $WEB_PATH --no-auth-cache >> $LOG_PATH 12 13 chown -R www-data:www-data $WEB_PATH