备份(镜像)svn版本库

发布时间:2019-12-30编辑:脚本学堂
备份(镜像)svn版本库

   实际生产环境中,我们通常有两个svn版本控制库,一个是开发版本,一个是稳定版本,所有运营的服务器都是从稳定版本库里面获取版本。稳定版本库其实就是开发版本库的一个镜像,通常情况下其版本号落后于开发版本库一些,因为新功能还要测试才会从开发版本库拿到稳定版本库,以供运营的服务器使用。
说到底,稳定版本库和开发版本库其实是一套版本(镜像的),在开发服上测试通过功能和特性会被稳定版本库同步过来,以保存一个稳定的可用的版本给运营的服务器使用,这里我不使用自动同步版本到最新的机制,因为我要保存一个稳定可用的版本。

   版本同步的实现方法:
   前提:有一个版本库是开发测试版本,这里称为Develop Version,内容经常会变动,我们要做的就是在开发版本库确定好一个功能和特性相对稳定的版本时,将其同步到稳定版本库,这里称为Stable Version,并在相对一段时间内不再改变稳定版本库的内容,以供运营的服务器在维护和更新的时候使用。

   在Stable Version上的操作

(1)建立版本库
svnadmin create stable_version

(2)修改stable_version/hooks/pre-revprop-change
cp pre-revprop-change.tmpl pre-revprop-change

vim pre-revprop-change
....
exit 0 #将最后的exit 1 变为0
....
chmod +x pre-revprop-change

(3)stable_version权限设定,这里不做叙述,可以查看网上很多关于svn用户权限设定的资料

(4)初始化需要同步的版本库
svnsync init file:///myrep svn://x.x.x.x/source_rep --username=svnuser --password=svnpassword
#格式为源版本库 目标版本库,建立源版本库同步同步机制,这里的用户名和密码是源版本库的用户密码

(5)开始同步版本
svnsync sync file:///myrep --username=svnuser --password=svnpassword
如果上面的设定没有问题,这里就可以看到版本同步的过程了,一直会到两个版本库的版本一致为止。到这里我们就建立了一个开发版本库的镜像或者备份了,其他服务器提供正确的用户和密码之后,就可以从稳定版本库拿到版本了。以后需要同步版本(拿版本)就只需要执行第(5)个步骤就好。