什么是 post-commit
利用SVN的POST-COMMIT钩子自动部署代码 我们在开发的过程将代码提交到SVN后使用SVN的hook,通过post-commit脚本,在目 标文件夹根下执行svn update操作,将更新内容同步到测试环境,这样开发调试非常方便。
如何做
创建项目
svnadmin create /mnt/svnroot
进入 hooks 目录
cd /mnt/svnroot/hooks
我们可以看到有个 post-commit.tmpl 的文件。 这是官方提供的一个 template 。我们直接 copy 这个文件
cp -f post-commit.tmpl post-commit
注意: copy 后的文件没有后缀名称
编辑 post-commit 文件
vi post-commit
删掉除了第一行 #!/bin/sh 之后的所有文件 然后输入
#!/bin/sh
/usr/bin/svn update --username soul --password abc123456 /mnt/webroot
svn 命令路径 + update --username 您的用户名 --password 您的密码 您的服务器代码项目目录
即将完成 — 最后一步 – 修改权限
chmod +x post-commit
Checkout一份代码到您的服务器代码项目目录
/usr/bin/svn checkout svn://127.0.0.1/svnroot /mnt/webroot
解决Can’t convert string from native encoding to ‘UTF-8’:
post-commit 新增几行
#!/bin/sh
export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8
export LANGUAGE=en_US.UTF-8
/usr/bin/svn update --username soul --password abc123456 /mnt/webroot