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.

  • Organize LabVIEW in a git repository
  • Corporate Github behind proxy: Received HTTP code 503 from proxy after CONNECT
  • Configuring GitHub hooks to call an end-point that is OAuth protected
  • Using editorconfig within Git submodules
  • git .netrc file authentication issue
  • Why does git rebase often have fewer merge conflicts than a merge?
  • 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.

  • Obtaining Git server version
  • un-submodule a git submodule
  • How to manage a Git merge conflict with xlsx (binary)?
  • git-svn crashing on big repo migration
  • How to solve git merge error “Swap file .MERGE_MSG.swp already exists”
  • rebranch previous commits in git
  • 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.