您的位置:首页 > 其它

svn的迁移及备份说明

2009-10-22 17:28 309 查看

svn的迁移及备份说明

这是我的一同事整理的一篇“SVN迁移”的文章,相当漂亮、实用。记下共勉。

迁移步骤:

一、在192.168.53.22上安装svn1.6.3服务器:CollabNetSubversion-server-1.6.3-3.win32.exe

1、在http://www.collab.net/downloads/subversion/地址下载服务器和客户端安装包,使用用户名ww100hh,密码为我个人常用的。

2、安装服务器,按缺省配置,选择也同时安装Apache,设为系统服务,设置仓库目录为F:/svn_repository,Apache端口由80改为8080(因为22机器上的CSP tomcat占用80端口了)。

3、安装完成。

4、配置库迁移:从53.7上复制K:/svnroot/psm目录到53.22的F:/svn_repository/psm即可。如果除了迁移外,还想建新的配置库,操作如下:

1)创建仓库目录:svnadmin create C:/repos/projectname

2).修改svnserve.conf中的权限:

anon-access = read

auth-access = write

password-db = passwd

realm = projectname

5、在服务中启动CollabNet Subversion svnserve服务。(由于产品管理部暂时用不到浏览器模式,所以将服务中的CollabNet Subversion Apache置为手动并关闭即可)

6、服务器的迁移工作完成。为了避免53.7再被误使用,原53.7的psm目录转移到了k:/svnroot/Suite 版本库_bak/psm。

二、客户端重定向

1、在客户端机器上存放产品管理部svn(代码)的最顶层目录中使用右键,选择“TortoiseSVN”>>"Relocate...",
打开更改svn版本库访问路径对话軭,输入更改后的路径svn://192.168.53.22/psm,然后一直确定即可。

更改前的svn访问路径

svn://192.168.53.7/psm

更改后的svn访问路径

svn://192.168.53.22/psm

2、如果过程中提示某个目录被locked了,提示你clean up,那么按提示,先在该目录下“TortoiseSVN”>>"Clean up",然后再Relocate即可。

备份步骤:

三、在53.5机器的E盘创建svn同步备份库:E:/svnroot/svn_psm_bak

1、53.5机器本身已安装有svn1.5.1,不需再安装,svn1.4以上版本支持svnsync同步命令。该机上已有一个svn库,是suite开
发的,安装在D盘上,而产品管理部svn备份库要放在E盘。由于处在不同的盘符下,svn不支持共用一个系统服务,而是必须为每一个盘符分别启动1个系统
服务(且各设一个端口,否则冲突)。因此需参照已有的suite库的做法,安装启动一个自己专用的系统服务。

2、首先在53.5的E盘建立一个svnroot主目录,然后创建这个新的用于备份的配置库:

svnadmin create E:/svnroot/svn_psm_bak

3、然后在53.5上创建svn系统服务,参考wiki资料:http://192.168.53.10/pages/viewpage.action?pageId=5376011。

1)打开cmd,执行如下创建命令,注意端口设为8083,执行完后,显示“[SC] CreateService 成功”:

sc create svn_psm_bak binpath= "/"C:/program
files/Subversion/bin/svnserve.exe/" --service --listen-port 8083 -r
E:/svnroot" displayname= "svn_psm_bak" depend= Tcpip start= auto

2)执行启动服务命令(也可直接在服务窗口操作):

net start svn_psm_bak

4、修改这个目标库的脚本:将H:/svn_psm_bak/hooks/pre-revprop-change.tmpl文件复制2个改名为pre-
revprop-change和pre-revprop-change.bat,内容都改为只有1句:exit 0

5、在53.5机器上,对目标库初始化,执行完以下命令后会显示“复制版本 0 的属性”。

svnsync init file:///E:/svnroot/svn_psm_bak svn://192.168.53.22/psm --source-username your_name --source-password ***

6、执行同步,执行完以下命令后数据就开始传输。

svnsync sync file:///E:/svnroot/svn_psm_bak --source-username you_name --source-password ***

7、钩子自动同步

希望在每次提交时同步,则

1)需要在源版本库53.22增加post-commit脚本,内容如下:

echo off

set SVN_HOME="C:/Program Files/CollabNet Subversion Server"

%SVN_HOME%/svnsync sync --non-interactive svn://192.168.53.5:8083/svn_psm_bak

把以上内容存放为post-commit.bat,为保险起见也复制一个不带后缀名的post-commit文件,两文件内容相同,然后都放到53.22版本库F:/svn_repository/psm下的hooks目录下,重启svn服务。

2)需要修改备份库53.5的认证权限,让非认证用户也可以有写操作。具体是修改E:/svnroot/svn_psm_bak/conf/svnserve.conf文件,

将 # anon-access = read

改为:anon-access = write

保存后重启svn服务。

这样psm每次提交,都会引起svn_psm_bak的同步。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: