Convert a Mercurial Repository to Git

Windows 7 64-bit Solution

How to convert a Mercurial repo into a Git repo.

This is one of the most asinine sequences of events I have ever had to figure out, but I am not a Python guy at all.

My Start Environment

  • Visual Studio 2010/2012
  • TortoiseHg 2.8.2; Includes Mercurial 2.6.3 & Python 2.7.3
  • Git 1.8.3

Errors I Got Along the Way

  • Could not find Python
  • Could not find Mercurial module in Python
  • Easy_Install does not exists
  • Could not compile Mercurial module

What I Did

  • Had to install Python27 stand alone (http://www.python.org/)
  • Make sure to put path in Path in Environment Variables
  • Had to install Easy_Install (http://sourceforge.net/projects/pywin32/files/)
  • Make sure the Python Scripts path is also in Environment Variables
  • And get this... Had to go to MSDN and download full version of Visual Studio 2008 and only install C++ with the 64-bit option turned on (so Easy_Install could compile the Mercurial module for Python), but I could not get it to work with the Express edition because could not find the 64-bit option.

Steps

  • In Command Console (after everything is installed)
    • C:\easy_install mercurial

(If you installed everything you should see it download and compile the Mercurial module)

  • In Git Console
    • Follow steps by @mauvis-ledford and @benno (Thanks guys!!!)

Did the following on my Mac to successfully export a Mercurial repo to Git (with full branches):

mkdir myrepo; cd myrepo;
git clone git://repo.or.cz/fast-export.git .
rm -rf .git .gitignore
git init
./hg-fast-export.sh -r ../path/to/local/hg/repo
git clean -f # remove fast-export files

Tags:

Git

Mercurial