我一直在尝试在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中创建了一个分支。所以,现在我在两个回购之间有这个非常奇怪的不一致的源代码树。我该如何解决这个问题?如何在将来正确地做到这一点?
答案 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