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


104

我一直在开发使用git作为源代码存储库的Java应用程序。我想与其他Java开发人员共享该项目,而hg似乎是他们使用最多的。

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

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


16
如果您需要从善变转向Git来代替:stackoverflow.com/questions/883452/...
基督教Oudard

最后一段没有意义。错字了吗
tshepang 2012年

1
@Tshepang:我想要“ git-> hg”,但得到了“ hg-> git”。我将编辑此问题,但由于现在有答案,因此我想人们还是会回答。
Spoike 2012年

Answers:


79

hg convert安装后,默认情况下该实用程序未打开。为了进行这样的设置,请在.hgrc文件中添加以下内容。

[extensions]
hgext.convert=

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


5
在Ubuntu上,可以在/ etc / mercurial / hgrc上进行系统范围的更改
Sentient

1
在Windows上,使用TortoiseHg,可以使用“全局设置”下“扩展”部分中TortoiseHg Shell扩展菜单中的“全局设置”菜单项来启用它。
Umar Farooq Khawaja'5

该描述有些不完整,因为它没有指定hg将需要访问git进行转换,否则您将收到错误“找不到所需的“ git”工具”。
jmd 2016年

41

通过使用Mercurial Convert扩展

在您的.hgrc或中添加以下几行以启用扩展程序:

[extensions]
hgext.convert=

然后输入

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


如果该答案包括.hgrc设置而不是链接到它,那将是全面的。
fbmd

17

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

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


2
这是比转换存储库更好的解决方案。如果有更多详细信息,这也是一个更好的答案。一行答案几乎是无用的。
naught101

1
@ naught101,感谢您的建议,我在此处添加了更多信息以直接阅读。
vdboor 2012年

安装并设置hg-git后,请使用hg gexport和hg gimport在它们之间进行转换。
CAD bloke




2

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

只是:

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

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"

0

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.