如何将git repo转换为hg repo

时间:2017-03-03 19:27:39

标签: git mercurial

我想将git reposetory转换为mercurial reposetory。

我先尝试做: " hg clone git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git",但命令已中止,原因是链接确实似乎不是一个hg存储库。 而不是我使用git clone ......

但我需要.hg而不是.git因为之后我将需要应用hg命令......

那么,我怎样才能继续转换这个.git?我读过有关hg convert的内容,但我并不了解使用它的方式。我将不胜感激任何帮助!

此致

贝勒哈吉

3 个答案:

答案 0 :(得分:1)

注意:这个答案似乎只适用于本地存储库;在使用之前,您需要使用git克隆存储库,然后在克隆的hg convert存储库上运行git以获取Mercurial存储库。

版本控制系统都不能自己读取其他存储库,因为它们使用不同的格式。他们之间有很多工具可供转换;其中一个Mercurial’s Convert extension与Mercurial捆绑在一起,可能是最容易使用的。

答案 1 :(得分:1)

启用转换扩展程序。你没有提到操作系统:

  1. 如果使用TortoiseHg,请转到File, Settings, Extensions并启用convert。跳到第4步。
  2. 否则,编辑Mercurial配置文件:
    (Windows)Mercurial.ini
    (Linux).hgrc
  3. 添加以下部分以启用扩展程序。

    [extensions]
    convert =
    
  4. 运行hg convert <path_to_git_repo> <path_to_desired_hg_repo>

  5. 另请注意,hggit扩展名(如果已启用)可以从git存储库克隆到本地Mercurial存储库。您可以在Mercurial中工作,然后返回到git存储库。您的命令示例应该与hggit启用。

答案 2 :(得分:1)

如果您想处理Mercurial的Git回购,我建议您使用Hg Git Plugin。有一个文档,但简而言之 - 您只需克隆该回购,然后通过

指向您~/.hgrc
[extensions]
hggit = ~/.hg-ext/hg-git/hggit

然后您可以使用hg克隆git存储库。

hg clone git://github.com/schacon/some-repo.git

当然,您也可以使用https或本地克隆。