如何将git存储库转换为mercurial?

时间:2009-01-29 13:21:34

标签: git version-control mercurial tortoisehg

我一直在使用git作为源代码库开发一个java应用程序。我想与其他java开发人员共享该项目,而hg似乎最常被他们使用。

我的问题是如何将git存储库转换为hg?

如果我尝试谷歌搜索“将git转换为hg”,并且每次搜索都是关于从hg转换为git。我也在使用TortoiseHg

9 个答案:

答案 0 :(得分:78)

安装后默认情况下hg convert实用程序未启用。要将其设置为此类,请将以下内容添加到.hgrc文件中。

[extensions]
hgext.convert=

如果您在Windows上使用TortoiseHg,则此文件将作为mercurial.ini驻留在您的主目录中。完成此设置更改后,您将可以使用hg convert实用程序。

答案 1 :(得分:41)

使用Mercurial Convert extension

  

将以下行添加到.hgrc或启用扩展程序:

[extensions]
hgext.convert=

输入

cd src
hg convert --datesort . dst

(即使它可以lead to some issues ...)

注意:: metrix报告这可能不起作用:

     hg convert --datesort src dst
  

注意:如果您从源目录以外的目录执行此命令,则hg convert会出现错误。
  您将收到以下错误:

abort: cannot read tags from git-repo4/.git
  

在Windows XP上使用git 1.7.9和Mercurial 2.6.2确认

答案 2 :(得分:17)

您可能需要查看http://hg-git.github.com/实用程序:Mercurial的Git插件

这个插件最初是由GitHub的人开发的,并允许无损转换来自git< - > mercurial。从理论上讲,您甚至可以克隆hg存储库。

答案 3 :(得分:9)

Distributed revision control with Mercurial州:

  

支持修订控制工具   通过转换如下:

     
      
  • 的Subversion
  •   
  • CVS
  •   
  • GIT中
  •   
  • 的darcs
  •   

那么也许您不需要任何其他工具?

答案 4 :(得分:6)

转换扩展可能适合您,但如果没有,您可能需要查看tailor这是一个用于在各种分布式SCM之间进行转换的通用工具。

答案 5 :(得分:2)

你可能根本就没有转换它。只需使用Hg-Git插件即可!没有人会知道其中的差异。

答案 6 :(得分:2)

镇上的新玩家:git-remote-hg。它在git中提供本机桥接支持。

只需:

hg init ../hgrepo
git push hg::$PWD/../hgrepo

答案 7 :(得分:1)

在包含我所有Git存储库的Git文件夹中,我创建了Git2Hg.cmd文件,其中包含以下内容:

set PATH=%PATH%;C:\Program Files\TortoiseHg
set PATH=%PATH%;C:\Program Files\Git\bin
hg convert %1

现在我可以通过在CMD中键入它来将Git存储库转换为Hg:

Git2Hg "Folder Name"

答案 8 :(得分:0)

Hg-Git插件或者如果您使用Windows或从一个移植到另一个,请访问2 [Windows GIT]