1.其实原理很简单,就是利用svn的钩子:post-commit,在提交过后想做什么在这个脚本里就写什么。
假设我们的SVN目录是:/home/svn
我们需要同步的web目录是:/home/www/web(前提,这个web目录也是从svn里面检出的)
修改post-commit文件.
#!/bin/bash
SVN=/usr/bin/svn
WEB=/data/wwwroot/test.abcd.cn/www #测试站点目录
LOG_PATH=/tmp/svn_hook.log
echo "------------Start Commit To test.abcd.cn-----------" >> $LOG_PATH
echo "Time:"`date '+%Y-%m-%d %T'`>>$LOG_PATH
export LANG='zh_CN.UTF-8' #防止乱码
#找出仓库中有更改的目录,去更新对应的测试站点目录.data目录中的大部分文件不包括在内
for DIR in `svnlook dirs-changed /data/svnroot/abcd-4.0`
do $SVN update $WEB/$DIR
done
chown -R www.www /data/wwwroot/test.abcd.cn/ #更新后调整属主属组
本文为Davidvivi原创文章,转载无需和我联系,但请注明来自Davidvivi博客weixia.xin 本人微信:ww646904527,备注博客