2010-04-19 52 views
50

是否有一個有效的工作流程來將主要託管在使用Hg的bitbucket上的項目鏡像到github?將HG項目從Bitbucket鏡像到Github

+0

也見http://stackoverflow.com/questions/883452/git-interoperability- with-a-mercurial-repository – wimh 2010-12-02 15:29:43

回答

36

你可以使用一個工具,如hg-git到:

  • 設置一個Git倉庫的地方,你要推送權限,
  • ,然後在你的項目中運行hg push [path]。例如:
$ cd hg-git # (a Mercurial repository) 
$ hg bookmark -r default master # make a bookmark of master for default, so a ref gets created 
$ hg push git+ssh://[email protected]/schacon/hg-git.git 
$ hg push 

這將我們所有的Mercurial數據轉換爲Git對象,並推動他們到Git的服務器。
您也可以將該路徑放入.hg/hgrc[paths]部分,然後按名稱推送。

hg-git

+0

謝謝。我簡單看了一下hg-​​git,但是我看到它仍然處於alpha狀態。我試圖在cygwin中安裝它,但目前我遇到了一些穩定性問題。 儘管如此,但它絕對是工作流程中的一個有用工具。 – Santa 2010-04-19 20:23:45

11

如果使用水銀的項目,你可以快速,輕鬆地讓你的項目的git鏡像,這樣git的用戶也可以提供。我創建了一個關於使用hg-git來管理GitHub上的Mercurial鏡像的教程。它包括如何開始使用GitHub帳戶,如何將項目從Mercurial推到GitHub,以及如何接受來自GitHub的貢獻(拉取請求)。這裏有一個博客文章的鏈接:http://hgtip.com/tips/advanced/2009-11-09-create-a-git-mirror/

6

截至2013年7月,有一個網絡服務通過BitBucket後接收掛鉤來自動執行此過程。您將需要將服務寫入權限授予您的GitHub存儲庫,但(作爲貢獻者,添加bitsynchub)。

8

添加git-remote-hg到您的bin路徑。那麼你可以鏡像爲mentioned on github

git clone --mirror hg::https://bitbucket_repo 

然後,進入你克隆回購

git remote set-url --push origin https://github.com/exampleuser/mirrored 

最後,同步你的鏡子

git fetch -p origin 
git push --mirror 
+1

這比接受的答案要好得多,因爲結果將成爲所有標籤和分支的真實鏡子。 – Kentzo 2017-11-01 01:15:43