我可以拆分Mercurial存储库吗?

我有一个很大的Mercurial存储库,我已经决定要好几个较小的存储库。 有没有办法,我可以拆分存储库,并让每一块保留其修订历史?

最好的方法是使用“convert”扩展名 。 你将使用mercurial和源和目标types,然后使用一个带有如下条目的--filemap

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

重命名只有当你想要把你保留的部分移到目录层次结构中的“更高”时才需要。

我在这里find了详细的指南:

创build一个文件映射new-repo.filemap

 include vendor/FooBackend rename vendor/FooBackend . 

创build另一个文件映射rewrite-old-repo.filemap

 exclude vendor/FooBackend 

创build新的存储库:

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

新的存储库现在已经完成。 该目录是空的,但是一个hg update将使其内容加快。

创build修改的存储库:

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

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