将不相关的repo导入Mercurial中的另一个repo

时间:2017-09-06 07:46:23

标签: mercurial tortoisehg

我有两个Mercurial存储库。两个回购都有自己无关的历史。我们打电话给他们:

  • “Main”(包含项目本身)
  • “Lab”(包含一些相关内容)

我现在想要将Lab个回购“导入”Main回购,但有以下约束:

  • 两个回购都应保留其历史。
  • Lab应存储为Main
  • 中的子文件夹
  • Lab的更改应位于合并为Main的分支中。

以下https://www.mercurial-scm.org/wiki/MergingUnrelatedRepositories基本上有效,但不会创建分支。

1 个答案:

答案 0 :(得分:1)

给定存储库MainLab,您可以将Lab存储库合并到主存储库中,并通过执行以下{{1}将其默认分支重命名为其他名称}} extension:

  1. 创建一个文件" branchmap.txt"包含convert。使用此分支图,实验室更改了"默认"分支机构将被命名为#34; Lab"。如果您的实验室存储库中有其他分支,则可能需要其他条目。
  2. 运行default Lab。这假设Lab和Main存储库目录以及branchmap.txt文件位于当前目录中。相应地调整路径。实验室更改集将添加到主存储库。
  3. 在主存储库中,以下命令会将Lab文件移动到Lab子目录中,然后将Lab分支与默认值合并。
    一个。 hg convert Lab Main --branchmap branchmap.txt
    hg update Lab
    C。 mkdir Lab d。 hg move * Lab
    hg ci -m "Moved Lab files to Lab subdirectory"
    F。 hg update default
    G。 hg merge Lab
  4. 现在,您可以继续修改Lab分支,并根据需要合并为默认值。