【问题标题】:cannot push to remote repo after merge合并后无法推送到远程仓库
【发布时间】:2011-06-12 16:23:11
【问题描述】:

分支 -

[default]$ hg branch talks
[talks]$ <... some commits ...>
[talks]$ hg update default

合并回来 -

[default]$ hg merge talks
3 files updated, 0 files merged, 0 files removed, 0 files unresolved

推送到远程仓库 -

[default]$ hg commit -m "merging talks to default"
[default]$ $ hg push
abort: push creates new remote branches: talks!
(use 'hg push --new-branch' to create new remote branches)

进一步调查显示,远程仓库不希望我在远程端有多个头。但是我只是做了一个合并,将两个头合并为一个,不是吗?

hg serve 的图表似乎也同意我的观点(我希望)

不过,我也看到hg heads的两个头像

[default]$ hg branches
default                        9:85752ecd6326
talks                          8:2b00714d76d5 (inactive)

【问题讨论】:

    标签: mercurial merge push


    【解决方案1】:

    解决方案在中止消息中:use 'hg push --new-branch'。您已经创建了一个名为 talks 的命名分支,因此无论您是否已将命名分支合并回默认值,它都需要这个额外的开关。

    【讨论】:

      【解决方案2】:

      我猜你误解了分支功能。您刚刚创建了一个名称将永远存在于存储库中的分支。我怀疑你并不是真的想这样做。您可能想研究本地分支的书签功能,这些分支的名称最终不会在存储库中永久存在。

      Mercurial 拒绝将新的全局分支名称添加到被推送到的存储库中,因为这很少是您真正想要做的事情。 hg push --new-branch 会告诉 Mercurial 是的,你真的是故意的。

      您看到的两个头像具有误导性。注意一个头是如何被列为“(非活动)”的。这只是意味着它是全球分支的最后一次更改,但不是真正的负责人。您经常希望看到树枝的头,即使这些头实际上有孩子并且不是真正的头。

      顺便说一句...我不久前编写了将该功能添加到“heads”命令的代码。 :-)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-12-22
        • 2019-06-29
        • 1970-01-01
        • 2018-09-13
        • 2014-10-21
        • 2011-07-26
        • 1970-01-01
        • 2013-02-21
        相关资源
        最近更新 更多