svn提交自动更新网站
实现原理:利用版本库hooks目录下的post-commit钩子达到svn提交自动更新网站代码的效果。因为post-commit钩子会在svn commit完成后触发执行。
*[root@xxx ~]# cd /usr/local/nginx/html/svnrepos/myproject/hooks #myproject是已经创建好的项目版本库
[root@xxx hooks]# cp post-commit.tmpl post-commit
[root@xxx hooks]# vim post-commit
*
REPOS="$1"
REV="$2"
export LANG=en_US.utf8
WEB_PATH=/data/wwwroot/myproject
LOG_PATH=/data/wwwlogs/myproject-svn.log
SVN_PATH=/usr/bin/svn
SVN_USER=username
SVN_PASS=password
echo `date "+%Y-%m-%d %H:%M:%S"` >> $LOG_PATH
echo `whoami`,$REPOS,$REV >> $LOG_PATH
$SVN_PATH update $WEB_PATH --username $SVN_USER --password $SVN_PASS --no-auth-cache >> $LOG_PATH
echo -e "" >> $LOG_PATH
说明:REPOS="$1" 是该项目版本库的路径,REV="$2" 提交后最新的版本号,–no-auth-cache 是不保存账户的认证信息。
[root@xxx hooks]# chmod +x /usr/local/nginx/html/svnrepos/myproject/hooks/post-commit #使得post-commit文件可执行
- 已经创建目录后检出项目
/usr/bin/svn co svn://192.168.10.250/project /www/wwwroot/myproject/