svn + post-commit 代码提交后自动更新web

svn自动发布  

一、起因

  • web 开发人员希望代码提交后自动发布到线上测试页面
  • 节省人工发布所需要的时间
  • svn 和 web 部署在同一服务器

二、hooks实现

  • 进入svn仓库目录下的hooks,编辑post-commit.tmpl
    cd /data/svnroot/webdev/hooks/
    cp post-commit.tmpl post-commit
    vim post-commit
#!/bin/bash
REPOS="$1"  
REV="$2"  
export PATH="/usr/bin/:$PATH"  
export LC_CTYPE=en_US.UTF-8          

if (svnlook log -r $REV /data/svnroot/webdev | grep "auto_deploy")  
then  
    echo "`date` 'auto deploy command received">> /tmp/svnautocommit.txt 
    svn export "svn://localhost/wedev" /data/www/web  --force
    chown www.www /data/www/ -R
fi  
  • 注:以上脚本仅供参考,跟据实际路径修改shell

  • chmod +x post-commit

  • 当提交代码时在注释中加入auto_deploy就会自动发布了