是否有一个高效的工作流来镜像主要使用Hg托管在bitbucket上的项目到github?
答案 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}}部分中,然后按名称推送到该部分。
答案 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,并填写了一些缺少的步骤来使其工作。在这里,我将提供更详细的指南:
[extensions]
hggit = [path-to]/hg-git/hggit
我在源存储库https://bitbucket.org/durin42/hg-git中找到了最新的安装说明。因此,请留意。
如果尚未安装dulwich,请安装:pip install dulwich
。
在GitHub上创建一个新的空存储库,例如https://github.com/user/git-mirror。
克隆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,或双向同步)。