我必须在两个存储库上工作,并希望在两者之间使用一个代码来移动一个目录。
我在这里阅读了几个问题,但仍然不确定该怎么办。我们的存储库是巨大(文件(orkingcopy)不包括修订>几个GB),因为所有内容都已签入(Code DesignData ...)。
我到目前为止所看到的解决方案是:
- SVNADMIN转储 过滤 导入:由于存储库大小而不是一个选项
- svnsync:我们已经在第二个存储库中拥有数据(存储库已经很大,我认为合并它们不是一个好主意,除了决定不是我的工作)我收集的内容要求第二个存储库要空。
- 第三方解决方案:反复崩溃,因为它无法删除文件,因为"另一个过程hast hast hast the文件打开"脚本)
是否还有其他解决方案,解决方法,或者我错过了其中一种解决方案?
即使在大型存储库中,svnadmin dump filter 导入也可以。
您需要做一些事情来进行性能。找出首先创建要复制的文件夹的修订版。然后检查日志以查找修改该文件夹中任何内容的最后一个修订版。您只需要在该范围内倾倒修订即可。
使用 - incremental标志到svndump。
不要尝试将Deltas标志与SVN转储使用。SvnDumpFilter无法在用" deltas"创建的垃圾场中使用。不要试图将巨大的转储保存到文件中,然后在文件上运行svndumpfilter。而是用管道一步一步。
如果您的开始修订为10000,并且您要复制的路径是项目/来源,则该命令应该看起来像
svnadmin dump --incremental -r10000:20000 YourRepoPath | svndumpfilter include projects/source --drop-empty-revs --renumber-revs > source.dump
紧随其后的是SVNADMIN加载命令,将转储加载到您的其他存储库中。