将HG项目从Bitbucket镜像到Github

时间:2010-04-19 19:24:03

标签: git mercurial workflow github bitbucket

是否有一个高效的工作流来镜像主要使用Hg托管在bitbucket上的项目到github?

7 个答案:

答案 0 :(得分:39)

您可以使用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://git@github.com/schacon/hg-git.git
$ hg push
  

这会将我们所有的Mercurial数据转换为Git对象并将它们推送到Git服务器   您也可以将该路径放在[paths]的{​​{1}}部分中,然后按名称推送到该部分。

hg-git

答案 1 :(得分:13)

如果您将Mercurial用于项目,您可以快速轻松地制作项目的git镜像,以便git用户可以贡献。我创建了一个关于使用hg-git来管理GitHub上的Mercurial镜像的教程。

它介绍了如何开始使用GitHub帐户,如何将项目从Mercurial推送到GitHub,以及如何接受来自GitHub的贡献(拉取请求)。以下是博文的链接:http://hgtip.com/tips/advanced/2009-11-09-create-a-git-mirror/

答案 2 :(得分:10)

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

答案 3 :(得分:6)

截至2013年7月,有BitSyncHub个网络服务,可通过BitBucket后接收挂钩自动完成此过程。您需要将服务写入权限授予您的GitHub存储库(添加 bitsynchub 作为贡献者)。

答案 4 :(得分:2)

我要从2019年2月开始报告。我刚遇到此问题,跟随@vonc's suggestion使用hg-git,并填写了一些缺少的步骤来使其工作。在这里,我将提供更详细的指南:

  1. 通过将其repository克隆到某处并在〜/ .hgrc文件中使“扩展名”部分看起来像这样来安装hg-git:
[extensions]
hggit = [path-to]/hg-git/hggit

我在源存储库https://bitbucket.org/durin42/hg-git中找到了最新的安装说明。因此,请留意。

  1. 如果尚未安装dulwich,请安装:pip install dulwich

  2. 在GitHub上创建一个新的空存储库,例如https://github.com/user/git-mirror

  3. 克隆hg源存储库,并将其推送到git镜像:

$ hg clone https://bitbucket.org/user/hg-source
$ cd hg-source
$ hg push git+ssh://git@github.com/user/git-mirror.git

答案 5 :(得分:1)

另一种可快速转换的解决方案:https://github.com/frej/fast-export

答案 6 :(得分:0)

您可以使用Git-hg Mirror service执行此操作(包括将GitHub仓库镜像到Bitbucket,或双向同步)。