架设了svn版本服务器之后,为了保险起见通常需要对数据进行备份,使用svnsync进行版本镜像就是一种方式,也是我们采取的方式。
应用环境:本机有项目admin_project需要进行镜像,镜像目的地定为本机的项目admin_back(简单点好测试,实际应用时没有区别)
步骤:
1. 初始化。首先在本机建立项目admin_back,创建reposity,在conf目录中设置好权限并和密码。然后再hooks目录中建立一个文件pre-revprop-change.bat(Windows系统下为bat文件,Unix环境下不需要bat后缀,设置文件执行权限即可)。做完前面的工作后,执行svnsync进行初始化操作:
svnsync init svn://127.0.0.1/admin_back svn://127.0.0.1/admin_project
镜像目的地admin_back在前,镜像源admin_project在后。按照提示输入帐号密码,初始化工作就ok了。
2.进行同步操作,建立镜像。第一步只做了必要的初始化工作,将镜像项目和源项目关联到一起,但并没有做实际的文件同步操作,这步才会有实际的文件同步操作。执行命令:
svnsync sync svn://127.0.0.1/admin_back
前面已经将镜像目的和源进行了关联,所以这步命令中只需要指定镜像的目的即可。这步操作完成之后你就在admin_back 项目中有了项目admin_project的镜像。以后每次需要同步时执行这步的命令即可。
3.钩子自动同步(还未测试)。如果希望在每次提交时自动同步,则需要在原版本库增加post-commit脚本,内容如下:
echo off
svnsync sync --non-interactivesvn://127.0.0.1/admin_back
将上面的的内容存放为post-commit.bat(for win),然后放在源版本库项目admin_project下的hooks目录下,这样每次源版本库提交,都会引起镜像项目admin_back的同步
没有评论:
发表评论