简介:
使用svnadmin dump命令可生成所有修订版的转储数据,svnadmin load命令可读取修订版的转储数据,不依赖特定平台、subversion版本。
且可通过svndumpfilter命令对转储数据流进行筛选,如只保留某些路径文件、删除某些路径文件。
转储数据格式也是cvs2svn等转换工具使用的格式。
背景:
操作系统:Linux version 2.6.9
SVN服务器端版本:Subversion 1.6.9
场景:
有两个SVN仓库A、B,A库下有文件夹a1、a2,B库下有文件夹b1、b2,现要将A、B两库合并到C库,且不包含a2文件夹。
实现步骤:
1.建立新库C
2.获得A库转储数据
svnadmin dump /svn/data/A > a-temp.dump
cat a-temp.dump | svndumpfilter include a1 > a.dump (linux)
type a-temp.dump | svndumpfilter include a1 > a.dump (windows)
3.获得B库转储数据
svnadmin dump /svn/data/B > b.dump
4.合并转储数据到C库
svnadmin load /svn/data/C < a.dump
svnadmin load /svn/data/C < b.dump
说明:
1.如想load入C库中指定文件夹,load时配置参数 --parent-dir
2.如想修改a1的层级目录,可编辑a.dump文件,修改a1的路径
图1 修改路径
图2 修改后