Mercurial:如何创建一个新存储库,其中包含来自现有存储库的修订版本的子范围?

时间:2018-11-14 16:54:10

标签: mercurial mercurial-subrepos

我有一个带有子仓库的仓库,历史悠久。在某个时候,主子仓库变得完全独立(不依赖于其他姐妹子仓库)。

在主要子仓库成为独立仓库之前,我不再关心整个过程的历史。因此,我想开始一个新的仓库,其中包含子仓库从那时起的所有内容。如果可能,请按照TortoiseHg命令进行描述。

2 个答案:

答案 0 :(得分:1)

您可能想使用mercurial's convert extension。您可以指定要转换的修订版本,要包含或排除在新创建的存储库中的路径,分支和文件。

hg convert from-path new-repo

Convert是仅需要激活的默认扩展名。

答案 1 :(得分:0)

通过使用hg strip命令,您也许可以淘汰不需要的任何其他变更集。

它将完全从存储库中删除变更集(及其祖先)。您最有可能想要制作一个新的克隆,然后将其剥离。

一个潜在的陷阱是,最终剥离的回购仍将与原始回购有共同的血统。因此,有人可能会再次意外拉下已剥离的变更集。

hg convert命令(noted in another answer)没有这个缺点。