常见问题
修改完代码提交到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
export LANG=zh_CN.UTF-8根据代码文件编码而定
用svnlook dirs-changed监控变化的文件夹逐个输出更新,也可以一次svn checkout全部检出,如果项目目录比较大可以考虑逐个更新。
希望只检出顶级目录被选中,使用-N选项。
如果是svn好web是同一台机器就这样已经搞定了,如果是分布式多台web前端,还是需要通过其它软件或命令进行同步更新,如rsync。