Usando git-remote-hg en windows

Según esta respuesta, http://sofes.miximages.com/a/13354944/867294 debería ser bastante fácil configurar git para que funcione con mercurial "sin dependencies ni nada".

Esto no parece funcionar todo lo bien en Windows resistente.

Traté de seguir esta guía

https://github.com/msysgit/msysgit/wiki/Guide-to-git-remote-hg

Después de arreglar makeFile para que funcione en mi sistema y comstackr git, no pude llamar a git-remote-hg porque se quejaba de que no podía encontrar el intérprete de python, aunque es difícil de configurar correctamente. Así que lo llamé manualmente con

C:/Python27/python.exe git-remote-hg clone C:/TestMercurialRepo 

Esto ahora me está dando el siguiente 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._unfiltenetworkingrepo, attr) AttributeError: 'mqrepo' object has no attribute 'capable' 

Cómo puedo arreglar esto ?
Si hay una versión anterior a la compilation, sería estupendo porque creo que estoy haciendo mucho para que esto funcione.

Tengo esto para trabajar hoy en Windows. Básicamente, como las distribuciones msysgit no tienen soporte para Python, tomé el file git-remote-hg.py de Felipe y usé py2exe para empacarlo como un ejecutable. Después, pongo todo el resultado py2exe en la carpeta 'libexec' en mi directory de installation de Git, y funciona.

Para que funcione, necesitas:

  1. Python 2.7
  2. El module Mercurial Python (instaladores de Windows aquí )
  3. py2exe (instaladores de Windows aquí )
  4. Script git-remote-hg python de Felipe (guardado sin procesar al file aquí )

Crea un file llamado setup.py que contenga:

 from distutils.core import setup import py2exe setup(console=['git-remote-hg.py']) 

Guarde el file en su sistema de files y ejecute el siguiente command:

 python setup.py py2exe --include mercurial 

py2exe producirá una carpeta llamada 'dist' que contiene el resultado. Copie el contenido de esa carpeta en la carpeta libexec \ git-core debajo de la carpeta de installation principal de Git (por ejemplo, C: \ Archivos de progtwig (x86) \ Git).

Ahora, debería poder clonar desde un repository de Mercurial usando el cliente de Git.

(Nota: escribí estos pasos con un poco de prisa, así que publique de nuevo si he omitido algo).

Tendré que investigar un poco más, pero parece que git-remote-hg podría depender de una versión particular de Mercurial que se esté instalando. En particular, uno en el que el object repo admite el método capable .

Esto parece un error en el código de git-remote-hg. Cualquier versión de Mercurial lo suficientemente nueva como para tener repoview también es lo suficientemente nueva como para que cada tipo de object repo sea compatible con el método capable . Así que supongo que el object que tiene el problema es uno creado por git-remote-hg.

De todos modos, es bastante evidente que git-remote-hg usa el código de Mercurial Python para hacer su trabajo. Entonces hay una dependencia entre ellos.

Además, su backtrace no coincide con el código en https://github.com/felipec/git/blob/fc/remote/hg/contrib/remote-helpers/git-remote-hg , por lo que es difícil depurar su configuration .