El empuje hg-git falla silenciosamente

Estoy tratando de usar hg push en un repository git, pero falla silenciosamente. Encontré una sola publicación en la list de correo y un problema de hg-git registrado , pero ambos tienen alnetworkingedor de medio año sin mucha actividad. Entonces comencé a pensar que entendía mal / configuré mal algo. Mi ~/.hgrc contiene

 [extensions] hgext.bookmarks = hgext.git = #hggit = /path/to/hg-git-0.3.1/hggit [bookmarks] track.current = True 

Este fragment reproduce el problema:

 mkdir /tmp/Git cd /tmp/Git git init echo 'something' > myfile git add . git commit -m 'Started' cd .. hg clone /tmp/Git /tmp/Hg cd /tmp/Hg echo 'another thing' >> myfile hg ci -m 'Working' hg log # Two items listed hg push cd ../Git git log # Only one item listed, but two expected 

hg-git 0.2.6-2 tanto hg-git 0.2.6-2 incluido con Ubuntu 11.10, y la última versión labelda, 0.3.1 . Mi mercurial es la versión 1.9.1

Incluso probé dos soluciones propuestas, hg update master antes de commiting y hg bookmark -f master after commiting, pero ambas dieron un error.

ACTUALIZAR:

Creé un nuevo problema para esto

Aquí hay dos cuestiones: push debería fallar explícitamente, y hg-git debería informarlo (pero no es así).

El empuje debería fallar, dando "abort: git remote error: refs/heads/master failed to update" when pushing to local clone , porque es un empujón hacia un repository no desnudo (vea más sobre eso desde la perspectiva de un usuario mercurial ). Una versión de trabajo del fragment de arriba es esto (tenga en count el uso del repository de Bare ).

 mkdir /tmp/Git cd /tmp/Git git init echo 'something' > myfile git add . git commit -m 'Started' cd .. git clone --bare -l /tmp/Git /tmp/Bare hg clone /tmp/Bare/ /tmp/Hg cd /tmp/Hg echo 'another thing' >> myfile hg ci -m 'Working' hg log # Two items listed hg push cd ../Bare git log # Two items listed 

Con respecto a por qué hg-git oculta este error, sospecho que es un problema con las versiones más recientes incluidas con Ubuntu. Lo que hice fue

 apt-get remove mercurial-git python-dulwich easy_install hg-git 

Eliminó dulwich 0.7.1 e instaló 0.8 que se requiere de acuerdo con el sitio hg-git . Ahora, funciona para mí. La versión mercurial ( 1.9.1 ) parece funcionar bien.