svn使用钩子Hooks的post-commit更新同步

常见问题

修改完代码提交到SVN服务器后,同步到WEB服务器。需要配置SVN的钩子,打开对应项目下hooks目录,

可以看到有一个post-commit.tmpl文件,这是一个模板文件,

复制一份放在此目录下,命名为post-commit

里面原有的代码全部注释掉.这里可以执行shell命令,每次commit完成后都会调用此文件.

我的文件内容为

#!/bin/sh
for dir in `/usr/local/svn/bin/svnlook dirs-changed /data/svn/mall/`
do
/usr/local/svn/bin/svn update -N /data/htdocs/mall/$dir
done
#export LANG=zh_CN.UTF-8
#/usr/local/svn/bin/svn checkout –username admin –password xxx svn://127.0.0.1/mall/ /data/htdocs/mall/

说明:

#!/bin/sh 说明是执行shell命令

export LANG=zh_CN.UTF-8根据代码文件编码而定

用svnlook dirs-changed监控变化的文件夹逐个输出更新,也可以一次svn checkout全部检出,如果项目目录比较大可以考虑逐个更新。

希望只检出顶级目录被选中,使用-N选项。

如果是svn好web是同一台机器就这样已经搞定了,如果是分布式多台web前端,还是需要通过其它软件或命令进行同步更新,如rsync。

此条目发表在服务器分类目录,贴了标签。将固定链接加入收藏夹。

发表回复