有没有一种高效的工作流程将主要托管在Bitbucket上的使用Hg的项目镜像到GitHub上?
你可以使用像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服务器。
您还可以将该路径放入.hg/hgrc
的[paths]
部分,然后按名称推送它。
'git-remote-hg'是Git项目的半官方Mercurial桥接工具,一旦安装成功,它允许你像处理Git仓库那样地克隆、获取和推送到Mercurial仓库:
将git-remote-hg添加到您的bin路径中,然后您可以像在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
dnf install -y git-remote-hg
。 - Alec Istomin我是从2019年2月开始报道的。我刚遇到这个问题,按照@vonc建议使用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