2010-04-19 78 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