106

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

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

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

4

9 回答 9

80

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

[extensions]
hgext.convert=

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

于 2009-01-29T14:53:04.850 回答
41

通过使用Mercurial Convert 扩展

将以下行添加到您的.hgrcor 以启用扩展:

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

于 2009-01-29T13:36:43.367 回答
17

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

该插件最初由 GitHub 开发,允许从 git<->mercurial 无损转换。理论上,您甚至可以克隆 hg 存储库。

于 2010-06-11T05:51:15.907 回答
9

Mercurial状态的分布式修订控制:

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

  • 颠覆
  • CVS
  • 吉特
  • 达克斯

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

于 2009-01-29T13:33:04.857 回答
6

convert 扩展可能对您有用,但如果不适用,您可能需要查看定制工具,它是用于在各种分布式 SCM 之间进行转换的通用工具。

于 2009-02-26T01:36:28.217 回答
2

你根本无法转换它。只需使用Hg-Git插件!没有人会知道其中的区别。

于 2010-04-27T03:51:31.803 回答
2

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

只是:

hg init ../hgrepo
git push hg::$PWD/../hgrepo
于 2012-11-13T02:41:47.150 回答
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"
于 2016-06-07T16:32:10.380 回答
0

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

于 2015-03-11T09:48:03.440 回答