svn服务器上不同仓库下的项目迁移并保持历史记录

问题:由于需要整理svn上的数据,需要将仓库A中的某个项目迁移到仓库B中,同时需要保持该项目所有的修改记录;

          错误做法:①通过复制,那么此时该项目的文件只保留最新的版本;

  ②将项目县checkout下来,再通过import导入,那么此时得到的是一个新的项目,失去迁移的意义了。

前提:首先关闭两台服务器的svn所有服务,比如(apache、svn),以避免在进行迁移时又有其他的用户访问或修改。

 

备份和还原:

 

1.将ServerA上的 项目pro1所在的仓库进行备份,使用命令:

      svnadmin dump oldrepos > reposdumpfile 

      示例:C:\ProgramFiles\VisualSVN Server\bin>svnadmin dump F:\Repositories\document>F:\documentdumpfile

 

2.如果需要将Server A上repos1中的所有项目迁移到Server2上,则将reposdumpfile文件直接拷贝到Server2上,然后转到 步骤4;

 

3.如果我们只需要repos1仓库中的pro1则我们需还要对reposdumpfile文件进行过滤,命令如下:

       svndumpfilter include pro1 < reposdumpfile< pro1dumpfile

         示例:C:\ProgramFiles\VisualSVN Server\bin>svndumpfilter include 医疗项目/中医药大学附属医院体检中心信息管理系统< G:\documentdumpfile > G:\pro1dumpfile

svndumpfilter include yufu/soft/Cortex/branches/HXYT_618<E:\BACK\20180810.dump>E:\BACK\20180810_HXYT.dump

 

4.在Server2上运行如下命令,则完成了项目的迁移;(只能针对整个库,不能单独放下某个文件夹下面,可以建立相同名称父目录,会自动放到该父目录下面)

      svnadmin load newrepos < pro1dumpfile 

       示例:C:\ProgramFiles\VisualSVN Server\bin>svnadmin load G:\Repositories\project <G:\pro1dumpfile

       示例:C:\ProgramFiles\VisualSVN Server\bin>svnadmin load C:\Repositories\yufu <E:\svn_bak\20180810_HXYT.dump
 

可能会出现的问题:

<<< Startednew transaction, based on original revision 1

     * adding path : 建设厅项目/诚信平台 ...svnadmin:E160013: File not found: transaction '1274-ze', path '/建设厅项目/诚信平台'

首先需要建立一个同名文件夹如"建设厅项目" "医疗项目"(需要导入目录的父目录),否则会出现如上问题

阅读更多
换一批

没有更多推荐了,返回首页