【问题标题】:Mercurial/TortoiseHG Merge Trunk Changes into BranchMercurial/TortoiseHG 合并树干变化到分支
【发布时间】:2010-09-30 16:15:30
【问题描述】:

我刚从 SVN 切换过来,在对主干进行一些更改后,我会将一系列修订(从我上次从主干合并到 branhc - HEAD)合并到一个分支中。我想用 TortoiseHG 对 Mercurial 做同样的事情,但我不知道怎么做。我刚刚向主干提交了两个变更集,现在我需要分支来整合这些变更。提前致谢!

【问题讨论】:

    标签: mercurial merge tortoisehg


    【解决方案1】:

    我写了一篇关于working with branches in Mercurial 的指南。归结为:

    $ hg update mybranch # unless you are already at the tip of the branch
    $ hg merge default   # merge in latest changes from "trunk"
    $ hg commit -m 'Merge with default'
    

    mybranch 完成后,将其关闭并合并为默认值:

    $ hg commit --close-branch -m 'Ready for merge'
    $ hg update default
    $ hg merge mybranch
    $ hg commit -m 'Integrated mybranch'
    

    Mercurial 最酷的地方在于,无论您要合并哪个方向,都可以使用相同的命令。 Subversion 的合并跟踪系统要求您在向一个方向合并时添加特殊的命令行标志,而不是在另一个方向(如果没有在手册中查找,我不记得哪个方向是哪个方向)。

    【讨论】:

    • 您能否提供更新后的指南链接?此评论中的一个已损坏。
    【解决方案2】:

    在 hg(或任何 DVCS)中,您可以将任何变更集与任何其他变更集(祖先除外)合并。如果您从 TortoiseHG 打开存储库日志(从资源管理器上下文菜单查看变更日志或从命令行hgtk log),您可以更新到任何变更集,然后选择“合并”。

    在您的具体情况下,您将更新到您的分支头,然后与主干头合并。

    【讨论】:

    • 由于 SVN 转换,我的案例并不那么简单,但接下来我将采用这种方法。
    • @Chris:您愿意分享您的设置细节吗?你有什么样的分支结构?
    • 我试图将我的主干合并到我的分支中,但由于我的存储库是使用 HG CONVERT 从一个 SVN 存储库创建的,因此 HG 不知道我在此过程中已经从主干中合并了更改。我执行了从主干到分支的合并,选择保留分支中的所有更改。我答应了。这让 HG 认识到我的主干已被合并到分支中。然后我在主干上执行新更改,提交,现在当我合并时,HG 知道这些新更改是唯一需要合并的更改。现在 HG 确切地知道我的存储库中有什么。
    【解决方案3】:

    这是我通常做的:

    hg up trunk #assuming trunk is your main branch
    hg merge -r myawesomebranch
    #party
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-28
      • 2016-04-20
      • 1970-01-01
      • 2011-11-25
      相关资源
      最近更新 更多