参考文献:SVN跨版本库迁移目录并保留提交日志
网址:http://witcher42.me/blog/2012/06/01/svn/
真的非常感谢这位作者,写得很好,简单易懂,终于把版本库转移的问题解决了。
关键字:VisualSVN 跨版本库迁移目录 保留日志
- 整理需要迁移的目录路径对应表
目标:把 “\PROG1 ”整个目录及文件 迁移到 “项目1\程序\PROG1”目录中,并保留日志
- 把源目录“PROG1”导出到一个文件中
- 指令格式:svnadmin dump 版本库源目录 > 目标文件
- 执行指令“ svnadmin dump F:\SVN版本库\PROG1 > prog1 ”
D:\Program Files\VisualSVN Server\bin>svnadmin dumpF:\SVN版本库\PROG1 > prog1
解释:
- 将“F:\SVN版本库\PROG1”整个版本库导出至“prog1”这个文件中;
- “prog1”文件存放在当前目录,且不含扩展名;
注意:
- Windows下,“版本库源目录”必须为包含format文件的目录,是存放文件的实际物理路径,非SVN服务器的相对路径;
- 需要转移的源目录非根目录的,可使用svndumpfilter指令,将实际要转移的源目录从刚刚生成的文件中提取出来,并放到一个新文件中;在目标目录下导入时则使用这个新生成的文件;
例子:把APP从PROG1从提取出来,可执行以下指令
svndumpfilterinclude APP < prog1> app
这种情况,导入时应使用“app”这个文件,不再使用“prog1”这个文件。
- 根据需要,在VisualSVN服务器界面上建立目录
- 把刚刚导出的文件导入到目标目录
- 指令格式:svnadmin load 目标根目录 --parent-dir 目标子目录 < 源文件
- 执行指令:svnadmin load F:\SVN版本库\项目1 --parent-dir 程序/PROG1 < prog1
D:\Program Files\VisualSVN Server\bin>svnadmin loadF:SVN版本库\项目1--parent-dir 程序/PROG1 < prog1
解释:将当前目录下的“prog1”文件导入到“F:SVN版本库\项目1”根目录下的“程序/PROG1”子目录中
到此,完成所有迁移工作。最后提醒一句:SVN是区分大小写的!