How do I convert a git repository to mercurial?
GitVersion ControlMercurialTortoisehgGit Problem Overview
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.
Git Solutions
Solution 1 - Git
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.
Solution 2 - Git
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
Solution 3 - Git
You may want to look at the http://hg-git.github.com/ utility: a Git plugin for Mercurial
This plugin is originally developped by the guys of GitHub, and allows the convert from git<->mercurial losslessly. In theory, you could even be able to clone the hg repository.
Solution 4 - Git
Distributed revision control with Mercurial states:
> The revision control tools supported > by convert are as follows: > > * Subversion > * CVS > * Git > * Darcs
So maybe you don’t need any additional tool?
Solution 5 - Git
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.
Solution 6 - Git
You could just not convert it at all. Just use the Hg-Git plugin! No one will know the difference.
Solution 7 - Git
New player in town: git-remote-hg. It provides native bridging support in git.
Just:
hg init ../hgrepo
git push hg::$PWD/../hgrepo
Solution 8 - Git
In the Git
folder with all my Git repositories I created the Git2Hg.cmd
file with the following content:
set PATH=%PATH%;C:\Program Files\TortoiseHg
set PATH=%PATH%;C:\Program Files\Git\bin
hg convert %1
Now I can convert a Git repository to Hg by typing this in a CMD:
Git2Hg "Folder Name"
Solution 9 - Git
Hg-Git Plugin or if u use for windows or migration from one to another visit here [2][Windows GIT] [2]: http://www.appveyor.com/blog/2014/02/23/converting-mercurial-repository-to-git-on-windows