SVN分批增量迁移版本库

方案1、分批增量迁移版本库。
 
①查看当前旧版本库最新的版本号是多少
在命令提示符窗口,打开库所在目录,例如:cd D:\Repositories。
执行svnlook youngest oldRepositories
 
例如返回版本为281
 
②分批增量导出版本库内容
D:\Repositories\svnadmin dump oldRepository -r 0:100 > dumpfile1
导出第一个文件,版本号从0到100的修订版本
 
D:\Repositories\svnadmin dump oldRepository -r 101:200 --incremental > dumpfile2
导出第二个文件,版本号从101到200的修订版本
 
D:\Repositories\svnadmin dump oldRepository -r 201:281 --incremental > dumpfile3
导出第三个文件,版本号从201到281的修订版本
 
 
注:三个命令中第2,3个命令多了一个--incremental的参数,使其采用了增量的方式导出,
 
③分批导入版本库文件
 
注:打开要导入的版本库所在目录,例如cd E:\Repositories。
 
首先导入dumpfile1,然后是dumpfile2,dumpfile3
依次执行
E:\Repositories\svnadmin load newRepository < dumpfile1
 
E:\Repositories\svnadmin load newRepository < dumpfile2
 
E:\Repositories\svnadmin load newRepository < dumpfile3
 
可能会出现的问题,提示错误:版本库文件已经存在。请确认前边导出时,是否使用了--incremental参数。
 
说明:这里我们是在命令提示符窗口下进行的。同样的,我们也可以按照方案1,采用写批处理文件的方式。
 

注:要根据自己的svn安装目录,和库目录写命令,例如:

C:\Program Files\VisualSVN Server\bin\svnadmin load D:\Repositories\newRepository < E:\dumpfile1
 
方案2、导出后,在导入时对库做分库处理或其它处理操作过滤版本库历史。

 
假设有一个包含三个项目的版本库oldRepository:Project1,Project2,和 Project3。它们在版本库中的布局如下:
/
  Project1/
      trunk/
      branches/
      tags/
   Project2/
      trunk/
      branches/
      tags/
   Project3/
      trunk/
      branches/
      tags/
 
现在要把这三个项目转移到三个独立的版本库中。
①利用上面介绍的方案1导出整个版本库:
svnadmin dump oldRepository> dumpfile
 
②将转储文件三次送入过滤器,每次仅保留一个顶级目录,就可以得到三个转储文件:
cat dumpfile | svndumpfilter include Project1> 1-dumpfile
cat dumpfile | svndumpfilter include Project2 > 2-dumpfile
cat dumpfile | svndumpfilter include project3 > 3-dumpfile
 
注:cat是subversion的文档中,关于svndumpfilter介绍给出的命令,在windows下并没有,与cat类似的命令是type,可以采用typedumpfile | svndumpfilter include Project1> 1-dumpfile
 
③这三个转储文件中,每个都可以用来创建一个可用的版本库,不过它们保留了原版本库的精确路径结构。
也就是说,虽然项目Project1现在独占了一个版本库,但版本库中还保留着名为Project1的顶级目录。如果希望trunk、tags和branches这三个目录直接位于版本库的根路径下,你可能需要编辑转储文件,调整Node-path和Copyfrom-path头参数,将路径Project1/删除。
同时删除转储数据中创建Project1目录的部分。一般为如下的一些内容:
 Node-path: Project1
 Node-action: add
 Node-kind: dir
 Content-length: 0
 
注:手工编辑转储文件来移除一个顶级目录时,不要让编辑器将换行符转换为本地格式(比如将\r\n转换为\n),很容易造成转储文件失效。
 
④最后,我们可以采用方案1提供的方法,将三个转储文件分别导入:
svnadmin create Project1
svnadmin load Project1< 1-dumpfile
svnadmin create Project2
svnadmin load Project2< 2-dumpfile
svnadmin create Project3
svnadmin load Project3< 3-dumpfile

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值