我有一个subversion存储库,目前有代码,文档和可交付成果。这变得混乱和无法管理,所以我想将存储库分成三个。
如何在不丢失历史记录的情况下将原始存储库(包含纯代码)的子部分移动到新的Documentation
和Deliverables
存储库中?例如:
<old_repos>\Docs
<old_repos>\Deliverables
<old_repos>\Src
...变为:
<docs_repos>
<deliverables_repos>
<src_repos>
我已经看过很多关于在存储库中移动文件夹的帖子以及其他显示如何将一个整个存储库移动到另一个存储库的帖子,但没有任何建议如何移动子集。这可能吗?
答案 0 :(得分:1)
您可以使用svndumpfilter。虽然
,但那里的文档中有说明--deltas
转储 - 它不支持。我认为--incremental
虽然可以需要花费一些力气,但我已成功完成了几次。
答案 1 :(得分:1)
未尝试过,未亲自测试
你将使用svnadmin dump,svnadmin load和svndumpfilter(命令略带Unixish风格)
1创建原始仓库的完整转储:svnadmin dump . > full.dump
2-4过滤器转储并仅保留与所需子目录相关的修订:cat full.dump | svndumpfilter include DIR-PATH --drop-empty-revs --renumber-revs --skip-missing-merge-sources --preserve-revprops > DIR-PATH.dump
5-7对于每个新的空仓库:svnadmin load . --parent-dir trunk --ignore-uuid < DIR-PATH.dmp
在最糟糕的情况下,新的回购将不会/trunk/*.* data-trees
,而是/trunk/DIR-PATH/*.*
,这可以通过一次大动作轻松消除,并在所有
PS - 我刚写完文字后发现:How to move a single folder from one Subversion repository to another repository?