创建dump文件(仓库所在的服务器上执行)

创建仓库的dump文件

svnadmin dump <仓库名> > test.dump

筛选需要迁移的文件夹

svndumpfilter include <仓库的绝对路径> --drop-empty-revs --renumber-revs < test.dump > temp.dump

  • 仓库的绝对路径是指,比如要迁移的仓库子文件夹的url为svn://<ip>/export/test,那么仓库的绝对地址就是/export/test
  • 仓库的绝对地址可以是多个,用空格隔开

去除掉仓库地址

创建出来的dump文件还保留原来的仓库路径,有需要可以去掉再导入新的仓库,因为导入时会做路径拼接
比如:这样可以去掉export前缀,导入时就直接目录test导入
sed 's|export/||g' temp.dump > clean.dump

导入到新的仓库(新仓库服务器上执行)

拷贝dump文件到新仓库服务器

scp xxx

执行导入命令

svnadmin load project --parent-dir <仓库的绝对路径> < clean.dump

  • --parent-dir可以指定导入新仓库的父路径,导入时进行拼接,仓库的绝对地址同上