我们有包含项目特定分支和标记的存储库。这是我的仓库的快照:
-
项目代码= = = = =>
>分支- - - R1
——R2
---- R3=====>> tags
——R1_tag
——R2_tag
项目数据库=======>> 分支机构
- - - R1
——R2
---- R3
======>>tags
——R1_tag
——R2_tag
现在我想在项目代码只采取一个分支的转储,然后加载此转储到同一服务器上的其他回购。我尝试遵循,但导致空版本被加载到其他repo。
svnadmin dump /path/to/repo | svndumpfilter include /proj > dump-file
svnadmin create /new/proj/repo
svnadmin load --ignore-uuid /new/proj/repo < dump-file
和我不能依次运行以上命令,因为Repo太大,创建转储可能至少需要10个小时。此外,忽略UUID是为了删除到当前存储库的链接,还是出于其他原因?
svndumpfilter
有一个删除空版本的选项,--drop-empty-revs
。
如果你没有一个特定的理由使用--ignore-uuid
,然后尝试没有它。如果它工作,你不需要它。
您可以简化转储过滤器加载操作,而不需要中间转储文件,如下所示:
svnadmin create /new/proj/repo
svnadmin dump /path/to/repo | svndumpfilter include /proj --drop-empty-revs | svnadmin load /new/proj/repo