本文主要是介绍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
4.在Server2上运行如下命令,则完成了项目的迁移;(只能针对整个库,不能单独放下某个文件夹下面,可以建立相同名称父目录,会自动放到该父目录下面)
svnadmin load newrepos < pro1dumpfile
示例:C:\ProgramFiles\VisualSVN Server\bin>svnadmin load G:\Repositories\project <G:\pro1dumpfile
可能会出现的问题:
<<< Startednew transaction, based on original revision 1
* adding path : 建设厅项目/诚信平台 ...svnadmin:E160013: File not found: transaction '1274-ze', path '/建设厅项目/诚信平台'
首先需要建立一个同名文件夹如"建设厅项目" "医疗项目"(需要导入目录的父目录),否则会出现如上问题
这篇关于svn服务器上不同仓库下的项目迁移并保持历史记录的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!