How do I convert a git repository to mercurial?

Viewed 29910

I've been developing a java application using git as source code repository. I'd like to share the project with other java developers and hg seems to be most used by them.

My question is how do I convert a git repository to hg?

If I tried googling "convert git to hg" and every search hit is about converting from hg to git. I'm also using TortoiseHg.

9 Answers

The hg convert utility isn't on by default after installation. In order to set it as such add the following to your .hgrc file.

[extensions]
hgext.convert=

If you're using TortoiseHg on Windows then this file resides in your home directory as mercurial.ini. After this setting change you will be able to use the hg convert utility.

By using the Mercurial Convert extension

Add the following lines to your .hgrc or to enable the extension :

[extensions]
hgext.convert=

And typing a

cd src
hg convert --datesort . dst

(even though it can lead to some issues...)

Note:: metrix reports that this might not work:

     hg convert --datesort src dst

Note: there happens to be a bug with hg convert if you perform this command from a directory other than the source directory.
You will get the following error:

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

Confirmed with git 1.7.9 and Mercurial 2.6.2 on Windows XP

The convert extension may work for you, but if it doesn't, you might want to check out tailor which is a general purpose tool for converting among the various distributed SCMs.

Related