svn使用post-commit实现自动部署,自动checkout,自动update(生产环境与svn服务处于同一服务器)

以admin.01h.net项目为例,仓库地址为:svn://01h.net/admin,生产环境目录为:/home/wwwroot/admin.01h.net,svn版本库目录为:/var/svn/admin。先进入svn版本库的hooks目录:

cd /var/svn/admin/hooks
cp post-commit.tmpl post-commit  //复制post-commit.tmpl 改名为post-commit
> post-commit  //清空内容
vi post-commit  //编辑文件

写入以下内容:

#!/bin/sh
export LANG=zh_CN.UTF-8
/usr/bin/svn update --username **** --password **** /home/wwwroot/admin.01h.net

其中第一行意思是用sh来解析这个脚本,因为各种shell的语法有细微的差别。
第二行是编码格式,这里使用的是UTF-8。
最后一行/usr/bin/svn 是svn可执行文件的路径,后半句分别是用户名、密码、和项目路径。

修改post-commit的可执行权限:

chmod 755 post-commit

进入项目目录/home/wwwroot/admin.01h.net,checkout整个项目。

cd /home/wwwroot/admin.01h.net
svn co svn://01h.net/admin .