我可以拆分Mercurial存储库吗?

时间:2008-11-03 02:01:40

标签: version-control mercurial

我有一个较大的Mercurial存储库,我认为它会更好作为几个较小的存储库。有没有办法可以拆分存储库并让每个部分保留其修订历史记录?

3 个答案:

答案 0 :(得分:54)

执行此操作的最佳方法是使用'convert' extension。您将使用mercurial以及源和目标类型,然后将--filemap与以下条目一起使用:

exclude path/you/do/not/want
rename path/you/do/want .

只有当你想要保留你正在保留的部分并在目录层次结构中“更高”地移动它们时,才需要重命名。

答案 1 :(得分:0)

我找到了详细的指南here

创建文件地图new-repo.filemap,例如

include vendor/FooBackend
rename vendor/FooBackend .

创建另一个文件地图rewrite-old-repo.filemap

exclude vendor/FooBackend

创建新存储库:

hg convert /path/to/current/repo /path/to/new/repo --filemap new-repo.filemap

新存储库现已完成。该目录为空,但hg update将使其内容更快。

创建修改后的存储库:

hg convert /path/to/current/repo /path/to/rewritten/repo --filemap rewrite-old-repo.filemap

答案 2 :(得分:-5)

只需克隆它并从每个副本中删除不需要的东西。