2009-07-18 7 views
10

Estoy deseando juguetear un poco con Mercurial, así que estoy tratando de convertir uno de mis repositorios existentes. Puedo ejecutar el comando siguiente en mi Mac:Cómo convierto mi repositorio de Git a Mercurial y traigo sus etiquetas

hg convert myrepos myrepos-hg 

El comando importa correctamente todos mis confirmaciones, pero no traer a lo largo de las 8 o así etiquetas que se han marcado en el repositorio Git (que no se producen de la ramas para el caso). ¿Hay algún parámetro especial que deba establecer para que mis etiquetas también se importen a Mercurial?

+1

Convirtiendo git a mercurial? Aquí, lea esta historia de advertencia primero: http://www.gksoft.com/a/fun/hal-ibm.html –

Respuesta

6

¿Son sus etiquetas etiquetas de git livianas o están llenas de etiquetas anotadas? hg convert solo convierte etiquetas anotadas, pero git crea de manera predeterminada las ligeras. Tuve este problema al convertir uno de mis repositorios recientemente. Puede comprobar cuáles son los siguientes:

git ls-remote --tags . 

Correr hg convert sólo habrá convertir las etiquetas que terminan en ^{}, los anotados queridos. Tienes 2 opciones:

  • parche del git.py hgext convertir el archivo de extensión para convertir todo tipo
  • cambiar sus etiquetas git a las etiquetas anotados antes de la conversión

Con un pequeño script de shell y la --force option to git-tag puedes anotar todas tus etiquetas.

+0

Ese fue el problema. ¡Gracias por el consejo! –

3

Este es un problema algo conocido. Usted puede tratar de parchear el siguiente /usr/lib/python2.6/site-packages/hgext/convert/hg.py archivo (o donde se encuentra) cambiando esto:

extra = {'branch': self.tagsbranch} 

a:

extra = {'branch': 'default'} 

y luego convertirlo de nuevo.

EDITAR: En una mirada más profunda al estado de las cosas, parece que puede ser difícil, no imposible, hacer lo que quiera. Aún más para hacerlo correctamente.

Ya que solo tiene 8 etiquetas, considere ahorrarse la molestia creando a mano el archivo .hgtags. Puedes averiguar qué pasa con 'hg convert' más tarde (también voy a mantener los ojos pelados).

Suerte.

+0

Modifiqué el archivo como correspondía (estaba ubicado en /Library/Python/2.5/site-packages/...), pero lamentablemente todavía no está convirtiendo las etiquetas y creando el archivo .hgtags. –

1

Una sugerencia que he visto en el pasado es usar svn como un paso intermedio. Tanto git como hg tienen una excelente conversión bidireccional de svn.

Cuestiones relacionadas