本文记录通过svn的钩子脚本实现本地提交svn后,自动同步代码文件到服务器的网站目录下,而不必手动同步。
假如现在有:
SVN版本库中的一个项目:/svn/rootwww/
网站目录:/data/www/
我们先将SVN版本库中的一个项目checkout到网站目录:
svn co svn://192.168.5.5/rootwww --username admin --password 123456复制代码
这时,网站目录已成为SVN的工作副本,接下来利用SVN的钩子让这个工作副本自动更新。
新建一个post-commit钩子:
如果文件名为:post-commit.tmpl 需要更改为:post-commit
vim /svn/rootwww/hooks/post-commit复制代码
添加以下代码:
#!/bin/shREPOS="$1"REV="$2"export LANG="zh_CN.UTF-8" #防止乱码svn update /home/www/ --username Hwei --password 123456 --no-auth-cache #设置登陆账号密码并不缓存复制代码
注:不要遗漏第一行的#!/bin/sh,否则post-commit会报代号255的错误。
保存后,修改文件权限为777,否则SVN无法调用执行:
chmod 777 /svn/rootwww/hooks/post-commit复制代码
结束!!