我
initialized
是一个 Mercurial 项目Machine A
,committed
我的更改和uploaded
它们到远程存储库。然后我
cloned
在那个存储库上Machine B
,committed
一些额外的更改和uploaded
它们到同一个远程存储库。
在这两种情况下,我都使用相同的命令上传了更改:
hg push https://username:password@domain/user/repository/
现在我回到了机器 A,我已经pull
从远程存储库中编辑了,并使用GUI 工具使用以下命令merg
编辑了两个变更集之间的任何更改:KDiff3
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