2012-12-31 129 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

相關問題