He tenido un gran éxito con los git-hg
de https://github.com/cosmin/git-hg (requiere trabajar instalación de hg
, también). Es compatible con fetch, pull and push y es más estable para mí que hg-git
(características similares de hg
git).
Consulte https://github.com/cosmin/git-hg#usage para ver ejemplos de uso. La interfaz de usuario es muy similar a git-svn
.
El git-hg
requiere espacio en disco adicional para cada uno de recompra hg clonado. La implementación utiliza clon mercurial completo, un clon desnudo git adicional y el repositorio git real. El espacio en disco requerido es aproximadamente 3 veces el uso normal de solo git. Las copias adicionales se almacenan debajo del .git
directorio de su directorio de trabajo (o ubicación señalada GIT_DIR
como de costumbre).
Aviso: El problema básico que git-hg
intenta resolver es que no hay una correlación 1: 1 entre las características git
y hg
. El mayor problema es la falta de concordancia entre las ramas Git y ramas sin nombre hg y ramas hg llamado y marcadores hg (todos aquellos parecen mucho a las ramas de git
los usuarios). Un problema relacionado es que hg
intenta guardar el nombre original de la rama con nombre en el historial de versiones en lugar de git, donde el nombre de la rama solo se agrega al mensaje de confirmación de plantilla de forma predeterminada.
Cualquier herramienta que pretenda crear un puente interoperable entre git
y hg
debería explicar cómo va a lidiar con este partido de impedancia. Luego puede decidir si la solución seleccionada se ajusta a sus necesidades.
La solución que git-hg
utiliza es descartar todos los marcadores hg y convertir ramas con nombre en ramas git. Además, establece la rama maestra git en la rama hg sin nombre predeterminada.