无法将功能书签合并到mercurial中的主书签中

时间:2013-02-05 07:37:11

标签: git version-control mercurial branching-and-merging

我一直在尝试在Mercurial中进行更多分支,并决定使用书签来完成它。这个特别的回购不仅推送到一个mercurial repo,而且还通过hg-git推送到git repo。

我在书签配置中使用track.current。无论如何,所以我创建了一个书签并做了一些提交

hg bookmark feature
hg update feature
hg commit ... 

然后我将我的功能分支合并回我的主分支

hg update master
hg merge feature

但是,此时我得到了:

abort: nothing to merge
(use 'hg update' or check 'hg heads')

查看hg bookmarks显示主人和功能确实指向不同的修订。

我不明白为什么我收到这条消息。无论如何我也犯了错误。我没有用它推书签,所以我的Mercurial回购看起来很好。然而,hg-git接受了使用并在我的git repo中创建了一个分支。所以,现在我在两个回购之间有这个非常奇怪的不一致的源代码树。我该如何解决这个问题?如何在将来正确地做到这一点?

2 个答案:

答案 0 :(得分:2)

在Mercurial中创建书签实际上并不创建新的头(或分支,换句话说),它标记了一个修订版(然后在您激活时进行提交时会自动更新)。在您提交两个书签之前,您实际上并没有获得新头(因此需要合并)。 This可能有助于阅读。此外,this回答有一个很好的解释。

答案 1 :(得分:1)

在这种情况下,您的feature书签似乎是master的直接后代。 Mercurial没有做git风格的快进合并,所以你只是'假装'。而不是:

hg update master
hg merge feature

你可以:

# We still have the feature bookmark checked out
hg bookmark --delete feature
hg bookmark --force master