SVN更新的同时线上服务器同步更新

今天花了点时间学习了下svn本地提交后代码同步更新到线上服务器。(svn服务器的搭建,可参考CentOS搭建SVN独立服务器)

达到此效果,须满足一下几点:

  1. 本地代码与线上代码被同一个svn版本库控制。
  2. svn服务器若与线上服务器不处于同一主机,需要有访问外网的能力。

代码同步的原理:

利用svn自带的hooks(钩子)

主要修改的文件:

svn版本库下的 hooks/post-commit.tmpl

复制或者重命名此文件为post-commit,并增加一个可执行权限 chmod +x post-commit

删除无用代码,增加如下代码:

仅此两行代码就可实现两套环境的代码同步,是不是相当简单。使用自带的hooks的一个好处就是,如果commit不成功(文件冲突等等),它会中断线上的同步。

此过程需要注意的问题:

1.环境变量不定义,而版本库中又有中文字符,报错率100%:

2.下图中,框出来的一行要么删除要么注释,不然会报错:命令未找到
SVN更新的同时线上服务器同步更新

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: