2012-12-31 87 views
2

我遇到以下问题。我有一个回购,我最初使用hg-git从github克隆,但是因为我一直在mercurial上开发它。原来的开发人员也不断更新回购,所以我们有多个负责人,我使用TortoiseHg合并任何我想要的东西,它工作得很好(我认为hg-git在这里没有什么区别)。不过,我有以下问题:现在我已将我的版本推送到BitBucket,并且它有三个分支。什么是BitBucket中的分支以及如何管理它们

3 default

我这个糊涂了。 git中的分支不应该是Hg中的书签?那为什么BitBucket支持分支而不是书签?我真的不知道Hg是什么分支,为什么我有3个,实际上hg branch只列出一个:default?或者他们实际上不是分支,但书签,只是BitBucket这样命名他们不混淆git用户?但这是一个汞回购(当我最初创建时设置为Hg),并且我没有使用git!

当我尝试hg heads -q我得到完全相同的结果:

235:03d08bcf3144 
233:d7fbd581b9e1 
227:abda0dc38b93 

所以它实际上是一个头什么到位桶卡列斯一个分支?是这样的,我怎么能像Git中的分支那样命名它们,比如默认,分叉等等?

我想到的一个想法是在每个头上创建一个书签。我想通过push -B他们每个人到BitBucket。现在,它看起来像这样:

6 branch

所以现在它开始是有意义的,但我可以做什么用3个默认?他们为什么在那里,他们究竟是什么? Hg中的分支,头部或书签?

为什么我只有一个在BitBucket设置?

1 in settings

回答

1

你有一个名为分支“默认”三头,这三个头是分支 - 匿名分支

如果你想消除“默认”里面这些分支在推送到BitBucket之前,您只需合并头部(两个头部 - 自己的线条并从上游拉出:我不知道没有历史记录,您将如何获得第三个)

+0

第三只是因为开发人员使用了两个不同的回购。我的问题是我不想使用命名分支进行分支,而只是使用书签。 在此期间,我通过以下方式对其进行了修复: 1.最重要的是,我意识到我的问题是默认情况下,Mercurial会推送所有**分支。我用'push --rev .'或TortoiseHg的'defaultpush = revision'修复了它。 2.为了确定实际的回购,我用'--close-branch'关闭了头部,推送到bitbucket和'hg strip' -dep local 3.现在单分支推送固定它 bitbucket用户界面处理这仍然是非常混乱。 – zsero

+0

关键是这些是正确的(匿名)分支,在推送到bitbucket之前不应合并。在bitbucket上处理书签不是很完整(请参阅我的答案)。 – JonnyJD

-1

您可能已经阅读A Guide to Branching in Mercurial。这是对不同“不同水银分支”的很好概述。

因此,git分支通常会转换为hg书签。那就是你继续使用一个具有一个(un-)命名分支“default”的hg仓库。在这个默认分支上,每个“git分支”都有一个书签。

现在,bitbucket的问题是,它的“hg书签”支持(目前)不像“git branch”支持那么完整。

所以,在你写作的时候,他们根本没有书签支持,只是支持(匿名)头像。大多数书签也是头,所以你可以看到每个头/书签的散列。但是,一些书签不在头上,但他们的所有提交都包含在另一个书签/头中。这些在bitbucket上完全不可见。

截至目前,书签在提交视图中显示(及其名称),并可以在下拉菜单中选择。 它们不显示在“分支”选项卡中。 通常也不可能打开书签的拉取请求。 但是,对于正面书签,您可以打开该头部的拉取请求。

另请参阅:bitbucket issue: can't create pull request from hg bookmark

相关问题