Using git-remote-hg on windows

git, hg-git, mercurial, python

Solution

I got this to work today on Windows. Basically, since the msysgit distributions have no Python support, I took Felipe's git-remote-hg.py file and used py2exe to package it up as an executable. Afterwards, I put all of the py2exe output into the 'libexec' folder under my Git installation directory, and it works.

For it to work, you need:

- Python 2.7

- The Mercurial Python module (windows installers here)

- py2exe (windows installers here)

- Felipe's git-remote-hg python script (save raw to file here)

Create a file named setup.py that contains:

from distutils.core import setup
import py2exe

setup(console=['git-remote-hg.py'])

Save the file to your file system and run the following command:

python setup.py py2exe --include mercurial    

py2exe will produce a folder called 'dist' that contains the output. Copy the contents of that folder into the libexec\git-core folder under your main Git installation folder (e.g., C:\Program Files(x86)\Git).

Now, you should be able to clone from a Mercurial repo using the Git client.

(Note: I wrote these steps in a bit of a hurry, so please post back if I've left out anything).

Problem

According to this answer https://stackoverflow.com/a/13354944/867294 it should be fairly easy to set up git to work with mercurial "no dependencies or anything". This doesn't seem to work all that smooth on Windows tough. I tried to follow this guide https://github.com/msysgit/msysgit/wiki/Guide-to-git-remote-hg After fixing the makeFile to work on my system and building git i couldn't call git-remote-hg because it complained it couldn't find the python interpreter, all tough it's configured correctly. So i manually called it with ``` C:/Python27/python.exe git-remote-hg clone C:/TestMercurialRepo ``` This is now giving me the following error. ``` Traceback (most recent call last): File "git-remote-hg", line 99, in <module> sys.exit(HgRemoteHelper().main(sys.argv)) File "d:\development\msysgit\git\git_remote_helpers\helper.py", line 196, in m ain repo = self.get_repo(alias, url) File "git-remote-hg", line 33, in get_repo if repo.capable('branchmap'): File "c:\Python27\lib\site-packages\mercurial\repoview.py", line 205, in __get attr__ return getattr(self._unfilteredrepo, attr) AttributeError: 'mqrepo' object has no attribute 'capable' ``` How can i fix this ? If there is a pre build version anywhere then that would be super awesome because i feel like i'm doing way to much to get this to work.

Original source

Related problems