合并后推送到远程存储库“创建新的远程磁头” - 是不是很糟糕?

时间:2009-10-20 20:59:50

标签: mercurial merge repository push

  1. initialized一个关于 Machine A 的Mercurial项目,committed我的更改以及uploaded他们到远程存储库。

  2. 然后我cloned Machine B 上的存储库,committed一些其他更改以及uploaded他们到同一个远程存储库。

  3. 在这两种情况下,我都使用相同的命令上传了更改:

    hg push https://username:password@domain/user/repository/
    

    现在我回到了机器A,我从远程存储库pull编辑了merg使用KDiff3 GUI工具使用命令在两个变更集之间进行了任何更改:

    hg pull
    hg merge
    hg commit
    

    但是,当我尝试在此拉取和合并后将机器A的最新更改推回到远程存储库时,我收到此消息:

    hg push https://username:password@domain/user/repository/
    pushing to https://username:password@domain/user/repository/
    searching for changes
    abort: push creates new remote heads!
    (did you forget to merge? use push -f to force)
    

    为什么会说“你忘了合并”? - 我完成了合并。

    强行推动并创建“新远程头”是不是很糟糕?

    如果是这样,我该如何避免这种情况?


    更新:

    我再次运行“hg merge”并获得此输出:

    5 files updated, 1 files merged, 0 files removed, 1 files unresolved
    use 'hg resolve' to retry unresolved file merges or 'hg up --clean' to abandon
    

    所以我跑了'hg up --clean'并报告:

    6 files updated, 0 files merged, 1 files removed, 0 files unresolved
    

    现在当我输入“hg heads”时,它会说:

    changeset:   11
    tag:         tip
    parent:      9
    user:        eggdrop
    date:        Tue Oct 20 16:27:44 2009 -0400
    summary:     Machine A after merge
    
    changeset:   10
    parent:      7
    user:        chickensoup
    date:        Thu Oct 15 03:27:23 2009 -0400
    summary:     Machine B changes to be pulled onto Machine A
    

2 个答案:

答案 0 :(得分:9)

你跑了hg up --clean。这意味着你取消了合并,这意味着你仍然需要合并。合并时有一个未解析的文件。重新阅读您的错误消息:

5 files updated, 1 files merged, 0 files removed, 1 files unresolved
use 'hg resolve' to retry unresolved file merges or 'hg up --clean' to abandon

您需要解决合并冲突,然后完成与hg resolve的合并。然后你就会成功合并你的两个脑袋。

并回答你的问题:不,有两个远程脑袋不是。它只是意味着你需要在将任何其他内容推送到远程服务器之前合并它们(最好是ASAP)。

所以要修复,只需运行hg merge,解决一个冲突,然后运行hg resolve

答案 1 :(得分:2)

首先:使用hg log查看您的更改。 以下对我的案例没有帮助:

  • hg pullhg merge(在您检查hg传入之前)
  • 或:hg pull --rebase

但这有帮助。

hg merge [revision]

我发现我需要明确合并一些看似头像的修订版。