代码之家  ›  专栏  ›  技术社区  ›  Austin Hyde

Mercurial:将克隆转换为分支

  •  3
  • Austin Hyde  · 技术社区  · 15 年前

    我正在尝试清理一些克隆存储库,基本上是将克隆转换为命名分支。

    最简单的方法是什么?

    2 回复  |  直到 15 年前
        1
  •  5
  •   tghw megawac    15 年前

    唯一能让它们命名为分支的方法是重写它们的历史记录,因为分支的名称是历史记录的一部分。然而,如果你能在没有分支机构被命名为过去的情况下生存下来(未来很好),那么你可以把所有的回购都拉到主回购中(不合并!)然后在树枝上贴上标签。

    例如,如果您有MainRepo、Feature1Repo和Feature2Repo,您将执行以下操作:

    $ cd MainRepo
    $ hg pull ../Feature1Repo
    $ hg pull ../Feature2Repo
    

    现在,如果你看到像乌龟一样的东西,你会看到一对不同的头。从这里开始,你只要 hg up hg branch :

    $ hg up feature1headrev
    $ hg branch Feature1
    $ hg up feature2headrev
    $ hg branch Feature2
    

    注:如果 hg pull 如果您抱怨存储库没有关联,您可以 hg pull -f

        2
  •  3
  •   Borealid    15 年前

    你可以用 hg export 创建一组更改,然后 hg import 把它们送到你的新分店。

    在第一个克隆中: hg export -r revA -r revB > revB.patch
    在第二个克隆中: hg export -r revA -r revC > revC.patch

    现在有两个补丁包含克隆中所做的所有更改。

    在原始存储库中:

    hg up revA
    hg branch branchB
    hg commit
    hg import revB.patch
    hg up revA
    hg branch branchC
    hg commit
    hg import revC.patch
    

    现在你有两个命名的分支从revA分支出来。如果您在revA和>revB或revA->revC,我不确定这是否能完美保存它们。

    另一种选择是使用移植延伸。或者你可以把你的克隆人的变化推到一个repo中,然后把创建的头移到新的分支上。

    推荐文章