代码之家  ›  专栏  ›  技术社区  ›  Richard J Foster

在Mercurial中,是否有任何方法(除了“挑选樱桃”)可以推动一个变更集而不同时推动与不同头部相关的变更集?

  •  11
  • Richard J Foster  · 技术社区  · 14 年前

    在答案中 this question , Ry4an 声明“不按changeset1就不能按changeset2”。

    如果存储库如下所示,这当然是有意义的:

    + Changeset2
    |
    + Changeset1
    |
    + Original
    

    然而,在下面的场景中,它似乎没有那么有意义,这正是我目前所拥有的:

    + Changeset2
    |
    |   + Changeset1
    |  /
    | /
    + Original
    

    理想情况下,我希望能够将changeset2推回到最初克隆的存储库中。墨丘利似乎不愿意让我这么做。它坚持我也推动改变1…这是不允许的,因为它将在原始存储库中创建新的头。显然,我可以“切丽挑选”,或者创建一个补丁来应用于原始存储库,但这看起来很笨拙。我错过什么了吗?

    更新: 我可能应该在最初的问题中提到,我试图从 TortoiseHg 图形用户界面。AS Niall C . 在他的回答中,正确地标识了Mercurial命令行,它允许我完成我需要的工作,但是如果有任何方法可以从GUI完成相同的操作,我仍然有兴趣学习。

    2 回复  |  直到 6 年前
        1
  •  11
  •   Niall C.    14 年前

    如果你在用 hg push 如果没有任何命令行选项,它将尝试推送远程存储库中不存在的本地存储库中的每个变更集。如果您使用 -r / --rev 选项,它只会推动该版本及其祖先。在您的情况下,您需要执行以下操作:

    hg push --rev Changeset2
    

    hg help push 详细信息。

        2
  •  2
  •   Matas Vaitkevicius user3782709    9 年前

    对于喜欢图片的用户界面爱好者:

    1. 在TortoiseHg中,单击 Detect outgoing changes to button。

    2. 在要按的修订版上单击鼠标右键。

    3. 选择“Push to here”(按到此处)。

    结果:您将只推送选定的修订,而不是全部推送。

    希望这样可以节省您一些时间。

    enter image description here

  • 在要按的修订上单击鼠标右键。

  • 选择 Push -> Push to Here . enter image description here

  • 结果:您将只推送选定的修订,而不是全部推送。 enter image description here

    希望这能节省你一些时间。

    推荐文章