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

我一直在开发一个使用git作为源代码库的Java应用程序。 我想与其他java开发人员分享这个项目,而且似乎是他们最常使用的。

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

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

安装后,默认情况下hg convert实用程序没有打开。 为了将其设置为您的.hgrc文件添加以下内容。

 [extensions] hgext.convert= 

如果你在Windows上使用TortoiseHg ,那么这个文件作为mercurial.ini驻留在你的主目录下。 更改设置后,您将可以使用hg convert实用程序。

通过使用Mercurial Convert扩展

将下列行添加到.hgrc或启用扩展:

 [extensions] hgext.convert= 

并input一个

 cd src hg convert --datesort . dst 

(即使它可能导致一些问题 …)

注:: 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确认

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

这个插件最初是由GitHub的人开发的,并允许从git < – > mercurial转换无损。 理论上,你甚至可以克隆hg仓库。

使用Mercurial进行分布式版本控制 :

convert所支持的版本控制工具如下:

  • 颠覆
  • CVS
  • 混帐
  • 的darcs

所以也许你不需要任何额外的工具?

转换扩展可能适用于您,但如果不适用,您可能需要检查定制哪一个是在各种分布式SCM之间转换的通用工具。

你可以根本不转换它。 只需使用Hg-Git插件! 没有人会知道这个区别。

新的城市玩家: git-remote-hg 。 它在git中提供本地桥接支持。

只是:

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

在所有Git仓库的Git文件夹中,我创build了Git2Hg.cmd以下内容的Git2Hg.cmd文件:

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

现在我可以通过在CMD中input以下命令将Git存储库转换为Hg:

 Git2Hg "Folder Name" 

Hg-Git插件或者如果你使用Windows或从一个到另一个迁移访问这里2 [Windows GIT]