ted*_*ted 9 svn svnsync svndumpfilter svnadmin svndump
我必须处理两个存储库,并希望在保留历史记录的同时在两个存储库之间移动一个带有代码的目录.
我在这里读了几个问题,但我仍然不确定要走哪条路.我们的存储库是巨大的(文件(orkingcopy)不包括修订版>几GB),因为所有内容都已签入(代码+设计+ ...).
我到目前为止看到的解决方案是:
是否有其他解决方案,方法,或者我错过了其中一个解决方案?
svnadmin转储+过滤器+导入甚至可以用于大型存储库.
您需要为性能做一些事情.找出哪个版本是首次创建要复制的文件夹的版本.然后检查日志以查找修改该文件夹中任何内容的最新修订.您只需要转储该范围内的修订版.
使用--incremental标志来svndump.
不要尝试使用带有SVN转储的Deltas标志.SvnDumpFilter不适用于使用"deltas"创建的转储.不要尝试将巨大的转储保存到文件中,并在文件上运行SvnDumpFilter.而是用管道一步完成.
如果您的起始修订版是10000并且您的结束修订版是20000并且您要复制的路径是项目/源,则该命令应该看起来像
svnadmin dump --incremental -r10000:20000 YourRepoPath | svndumpfilter include projects/source --drop-empty-revs --renumber-revs > source.dump
Run Code Online (Sandbox Code Playgroud)
后跟svnadmin load命令将转储加载到其他仓库中.