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

 

posted @ 2012-11-23 15:43  欧麦噶地  阅读(481)  评论(0编辑  收藏  举报