我正在尝试将部分 Subversion 存储库迁移到新的 Subversion 服务器。
http://server1/svn/repo1/path1/path2/path3
->http://server2/svn/repo2/path3
我通过以下方式创建了一个完整的转储:
svnadmin dump repo1 > repo1.dump
通过以下方式过滤转储:
svndumpfilter include /path1/path2 --drop-empty-revs < repo1.dump > repo1_filtered.dump
通过 Cygwin sed,我正在替换 /path1/path2:
sed -e 's,^Node-path: WM/BI,Node-path: ,' < repo1_filtered.dump > repo1_fixed.dump
在尝试将转储导入新/空存储库时,我收到以下错误:
<<< Started new transaction, based on original revision 32
* adding path : ...svnadmin: File already exists: filesystem 'bi\db', transaction '0-2', path ''
我认为问题在于 svndumpfilter 包含路径 /path1/path2。真的,我只想要/path1/path2 的孩子。运行 sed 后,在 repo1_fixed.dump 的开头附近,我发现:
2010-03-10T15:56*:59.595747Z
PROPS-END
Node-path:
Node-action: add
Node-kind: dir
Prop-content-length: 10
Content-length: 10
PROPS-END
我的猜测是空节点路径是问题的真正原因。
关于我应该如何进行的任何建议?