项目目的
出于管理需要,也需要在公司内部实现自动发布流程。当开发机提交SVN代码之后,自动同步到测试服务器进行测试。
系统平台:
CentOS release 6.5 (Final) 内核 2.6.32-431.23.3.el6.x86_64
svnserve, version 1.6.11 (r934486)
工作原理
当开发机提交更新之后,脚本会自动执行某段代码,将代码更新到某个副本中。如果svn服务器和WEB服务器在一台电脑中,这步操作已经完成自动发布;
如果svn服务器和web服务器不在一台电脑中,则还需要使用其他办法更新文件,同步到web服务器中。
hook简单介绍
为了方便管理员控制提交的过程 ,Subversion提供了hook机制。
当特定的事件发生时,相应的 hook会被调用,hook其实就相当于特定事件的处理函数。
每个hook会得到与它所处理的事件相关的参数,根据hook的返回值,Subversion会决定是否继续当前的提交过程
配置svnserve
创建多项目代码仓库
# mkdir -pv /mnt/svn/{back/motao_platform_dev,front/{A,B}}
# mkdir /mnt/svn/svnconf
# svnadmin create /mnt/svn/front/A
# svnadmin create /mnt/svn/front/B
# svnadmin create /mnt/svn/back/motao_platform_dev
配置集中认证与授权
# mv /mnt/svn/front/A/conf/{authz,passwd} /mnt/svn/svnconf/
# rm -f /mnt/svn/front/B/conf/{authz,passwd}
# rm -f /mnt/svn/back/motao_platform_dev/conf/{authz,passwd}
# vim /mnt/svn/front/A/conf/svnserve.conf
[general]
anon-access = none
auth-access = write
password-db = /mnt/svn/svnconf/passwd
authz-db = /mnt/svn/svnconf/authz
realm = share
参数realm用于指明仓库