多人开始使用subversion之后,就想着,要建立一个测试用的服务器,不需要把文件update到本地再进行测试。
原理:基于subversion的钩子,即hook(在每个版本库下有hooks文件夹,里面有很多钩子程序)。在subversion执行一个操作时,
那会相应的首先去调用相关的钩子程序(如果存在的话)。那么实现一个同步的测试服务器,我们只需要在一个用户执行完毕一个commit操作之后,让钩子程
序去自动更新测试服务器的文件即可。通过这个思路,我们需要作的就是建立一个post-commit的钩子。
svn_update.sh
#!/bin/sh SVN=/usr/bin/svn WEB=$1 WWWROOT=/data/www/wwwroot/duiduila.com/ SVNTMP=/data/www/svntmp/duiduila.com/ if [ ! -d "${WWWROOT}${WEB}" ]; then echo "arg error" exit fi #export LANG =en_US.UTF-8 $SVN update $SVNTMP$WEB --username *** --password ** /cp -rv $SVNTMP$WEB $WWWROOT find $WWWROOT$WEB -type d -name ".svn" | xargs rm -rf chown www.www $WWWROOT$WEB -R?
23