我有一个较大的Mercurial存储库,我认为它会更好作为几个较小的存储库。有没有办法可以拆分存储库并让每个部分保留其修订历史记录?
答案 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)
只需克隆它并从每个副本中删除不需要的东西。