如何解决Subversion存储库的一部分迁移到新服务器并重新路径化
|| 我正在尝试将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
我的猜测是,空节点路径是问题的真正原因。
关于我应该如何进行的任何建议?
解决方法
我很容易地复制了您的问题,并且您对自己的分析是正确的。问题是修订创建了基础文件夹。
如果您从转储中删除此事务,则它将正确导入
sed -e \"s,^Node-path: rep1/rep3,Node-path:,\" < temp_filtered.dump > temp_hacke.txt
我是手动完成的,这非常容易:只需查找带有空Node-path:的行,然后从上一个\“ Revision-number:\\”删除到下一个\“ PROPS-END \”。某些python / awk / perl可以做到(我没有尝试)。
如果此文件夹中没有特殊内容(例如属性随时间演变),则应该只出现一次。
另一个解决方案是将存储库导入单个文件夹而不是子树(在这种情况下,只需将sed行更改为,Node-path:newPath)
请注意,我不知道会为您执行此操作的工具。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。