Using git-remote-hg on windows

According to this answer 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.

  • Warn when doing git commit -a if something is staged
  • Resolving git conflicts: git mergetool doesn't work
  • When I “git push” git now says “Create pull request for …”. Why?
  • Why isn't source control working when I use a workspace in Xcode 5?
  • Git Fundamentals - Merging back into master
  • Gradle: add dependency to github project to dev branch instead of master
  • I tried to follow this guide

    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>
      File "d:\development\msysgit\git\git_remote_helpers\", line 196, in m
        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\", line 205, in __get
        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.

  • Git Error: The requested URL returned error: 504 Gateway Timeout while accessing http://
  • Run git pull over all subdirectories windows command promt
  • Git reset to previous commit
  • How to specify two remote fetch for single git repository in repo manifest?
  • How to see a merge history?
  • how to format commit message for some people in git hook?
  • 2 Solutions collect form web for “Using git-remote-hg on windows”

    I got this to work today on Windows. Basically, since the msysgit distributions have no Python support, I took Felipe’s 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:

    1. Python 2.7
    2. The Mercurial Python module (windows installers here)
    3. py2exe (windows installers here)
    4. Felipe’s git-remote-hg python script (save raw to file here)

    Create a file named that contains:

    from distutils.core import setup
    import py2exe

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

    python 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).

    I will have to investigate a bit further, but this looks like git-remote-hg might depend on a particular version of Mercurial being installed. In particular one in which the repo object supports the capable method.

    This looks like a bug in git-remote-hg code. Any version of Mercurial new enough to have repoview is also new enough that every kind of repo object should support the capable method. So I’m guessing the object that has the problem is one being created by git-remote-hg.

    Anyway, it’s quite apparent that git-remote-hg uses the Mercurial Python code to do it’s work. So there is a dependency between them.

    Also, your backtrace does not match the code at, and so it’s difficult to debug your setup.

    Git Baby is a git and github fan, let's start git clone.