2010-04-19 11 views

Respuesta

36

Se podría utilizar una herramienta como hg-git a:

  • configurar un repositorio Git en algún lugar que tenga acceso a empuje,
  • y ejecute hg push [path] desde dentro de su proyecto. Por ejemplo:
$ cd hg-git # (a Mercurial repository) 
$ hg bookmark -r default master # make a bookmark of master for default, so a ref gets created 
$ hg push git+ssh://[email protected]/schacon/hg-git.git 
$ hg push 

Esto convertirá todos nuestros datos en objetos Mercurial Git y empujarlos hasta el servidor Git.
También puede poner esa ruta en la sección [paths] de .hg/hgrc y luego presionarlo por su nombre.

hg-git

+0

Gracias. Eché un vistazo breve a hg-git, pero veo que todavía está en estado alfa. Intenté instalarlo en cygwin, pero estoy teniendo un problema de estabilidad con él en este momento. Siempre que esto funcione, sin embargo, definitivamente es una herramienta útil en el flujo de trabajo. – Santa

11

Si utiliza Mercurial para un proyecto que puede rápida y fácilmente hacer un espejo git de su proyecto para que los usuarios pueden contribuir git. Creé un tutorial sobre el uso de hg-git para administrar los espejos Mercurial en GitHub.

Cubre cómo comenzar con una cuenta de GitHub, cómo impulsar un proyecto de Mercurial a GitHub y cómo aceptar contribuciones (solicitudes de extracción) desde GitHub. Aquí hay un enlace a la entrada del blog: http://hgtip.com/tips/advanced/2009-11-09-create-a-git-mirror/

6

A partir de julio de 2013 hay BitSyncHub un servicio web para automatizar este proceso a través de un gancho Post-recepción de BitBucket. Sin embargo, deberá otorgar el permiso de escritura del servicio a su repositorio de GitHub (agregue bitsynchub como colaborador).

8

Añadir git-remote-hg a su ruta bin. Entonces puede duplicar como mentioned on github.

git clone --mirror hg::https://bitbucket_repo 

a continuación, entra en tu repositorio clonado

git remote set-url --push origin https://github.com/exampleuser/mirrored 

finalmente, sincronizar su espejo

git fetch -p origin 
git push --mirror 
+1

Esto es mucho mejor que la respuesta aceptada, ya que el resultado será un verdadero espejo con todas las etiquetas y ramas. – Kentzo

Cuestiones relacionadas