Mercurial/hg - abort:未完成的未提交合并

Mik*_*ton 45 mercurial

我在host1上有一个主仓库,并对host2上的仓库进行了更新.我用hg pushhost编辑了从host2到host1的更改

[mpenning@host2 login]$  hg push ssh://host1//opt/python/login
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试更新或合并时,我得到了

[mpenning@host1 login]$ hg update
abort: outstanding uncommitted merges
[mpenning@host1 login]$ hg merge
abort: outstanding uncommitted merges
[mpenning@host1 login]$ 
Run Code Online (Sandbox Code Playgroud)

我也尝试过hg pull来自host1,但这也不起作用......

[mpenning@host1 login]$ hg pull ssh://host2//opt/python/login
running ssh host2 'hg -R /opt/python/login serve --stdio'
mpenning@host2's password:
pulling from ssh://host2//opt/python/login
searching for changes
no changes found
[mpenning@host1 login]$ hg merge
abort: outstanding uncommitted merges
[mpenning@host1 login]$
Run Code Online (Sandbox Code Playgroud)

使用来自host2的更改来更新host1上的主存储库需要做什么?


有关host1上的repo的更多信息......

[mpenning@host1 login]$ hg parents
changeset:   27:6d530d533997
user:        Mike Pennington <d.pennington@foo.local>
date:        Wed Sep 26 11:44:51 2012 -0500
files:       mp_getconf.py
description:
fix issue where config retrieval was broken


changeset:   29:eaf3b5aacfe6
user:        Mike Pennington <d.pennington@foo.local>
date:        Wed Sep 26 11:43:15 2012 -0500
files:       mp_getconf.py
description:
fix artifact of using the script to run generic commands, but this broke config retrieval


[mpenning@host1 login]$
Run Code Online (Sandbox Code Playgroud)

Mik*_*ton 88

hg update --clean -r tip 解决了这个问题......

[mpenning@host1 login]$ hg update --clean -r tip
resolving manifests
getting Protocol.py
getting Session.py
getting mp_getconf.py
getting mp_runcmd.py
4 files updated, 0 files merged, 0 files removed, 0 files unresolved
[mpenning@host1 login]$ hg up
resolving manifests
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
[mpenning@host1 login]$
Run Code Online (Sandbox Code Playgroud)

  • 如果您正在处理特定分支,请将其更改为:hg update --clean -r <branchname> (9认同)

Pau*_*l S 12

在某些时候你做了:

$ hg pull (or maybe someone pushed to you)
$ hg merge
Run Code Online (Sandbox Code Playgroud)

......然后继续 这使得合并未提交.这就是'中止:未完成的未提交合并'的意思.你不能做'x',因为你还没有完成你开始的合并.

你应该做的是:

$ hg pull
$ hg merge
  <Sorted out any issues>
$ hg commit -m 'Merged the blah with wibble-wah'
Run Code Online (Sandbox Code Playgroud)

......然后继续

hg status并且hg summary会表明有很大的变化.

  • 我刚刚遇到同样的问题。hg status、hg diff 或 hg out 中没有任何内容。尽管如此,我仍无法更新或合并。接受的答案为我解决了这个问题。 (2认同)