3

我一直在尝试在 Mercurial 中进行更多分支,并决定使用书签来实现。这个特定的 repo 不仅推送到一个 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显示 master 和 feature 确实指向不同的修订版。

我不明白为什么我会收到此消息。无论如何,我也犯了继续前进的错误。我没有用它推送书签,所以我的 Mercurial repo 看起来不错。然而,hg-git 发现了它的用法,并在我的 git repo 中创建了一个分支。所以,现在我在两个存储库之间有了这个非常奇怪的不一致源树。我该如何解决这个问题以及将来如何正确地做到这一点?

4

2 回答 2

2

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

于 2013-02-21T05:26:36.633 回答
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
于 2013-04-23T04:05:59.810 回答