svn的迁移及备份说明

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的同步。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值