我必须处理两个存储库,并希望在保留修订历史的同时在两个存储库之间移动一个带有代码的目录。
我在这里读了几个关于SO的问题,但我仍然不确定要走哪条路。我们的存储库巨大(文件(orkingcopy)不包括修订版>几GB),因为所有内容都已签入(代码+设计+ ...)。
到目前为止我看到的解决方案是:
是否有其他解决方案,方法,或者我错过了其中一个解决方案?
答案 0 :(得分:8)
svnadmin dump + filter + import即使对于大型存储库也能正常工作。
您需要为性能做些事情。 找出哪个版本是首次创建要复制的文件夹的版本。然后检查日志以查找修改该文件夹中任何内容的最新修订。您只需要转储该范围内的修订版。
对svndump使用--incremental标志。
不要尝试在SVN Dump中使用Deltas标志。 SvnDumpFilter不适用于使用“deltas”创建的转储。 不要尝试将巨大的转储保存到文件中,并在文件上运行SvnDumpFilter。而是用管道一步完成。
如果你的起始修订版是10000而你的最终版本是20000并且你要复制的路径是项目/源,那么命令应该是
svnadmin dump --incremental -r10000:20000 YourRepoPath | svndumpfilter include projects/source --drop-empty-revs --renumber-revs > source.dump
后跟svnadmin load命令将转储加载到您的其他仓库中。