2010-11-29 17 views
6

Estoy usando Mercurial para desarrollar un proyecto de cliente. Después de haber estado trabajando en esto durante 2 semanas, el cliente ahora ha solicitado que guarde todo el código en su repositorio SVN.¿Espejo un repositorio de Mercurial en Subversion?

Quiero seguir utilizando Mercurial para el desarrollo, pero para mantener al cliente contento, exportar todas las confirmaciones (w/messages) en SVN también.

¿Esto es posible?

Respuesta

3

Puede usar Mercurial como cliente en su repositorio de subversión.

¿Has echado un vistazo hgsubversion todavía? Esto le permite tener un historial completo en Mercurial.

Consulte los detalles en: https://www.mercurial-scm.org/wiki/WorkingWithSubversion

Proporciona tres formas de trabajar con Subversion. Asegúrate de usar uno y no mezclarlos.

  1. Con hgsubversion
  2. Con MQ
  3. extensión Convertir

[Experiencia Personal]

he encontrado hgsubversion mejor la forma en que nunca puede tener problemas al convertir el repositorio suversion a una Repo mercurial

# This usually fails for a svn repo with 
# large history or large files in revchanges 

hg clone svn+http://.../svn local-hg 

# If the above has any issues and dies before converting the repo, use hg pull 
hg pull 

Problema: Tiene una cesión temporal ya existente.

  1. Creo que la mejor forma sería la de crear otro repo Mercurial desde el repositorio de subversión usando uno de los métodos anteriores.
  2. tira de sus conjuntos de cambios en esta nueva operación de la anterior para obtener todos los cambios y la historia de la anterior
  3. Ahora ya está listo para enviar los cambios al repositorio SVN
+0

Así que sería esta solución permitirá ¿Seguir usando mi * existing * hg repo, para sincronizar los cambios en su repositorio SVN? Aún mejor sería la posibilidad de extraer nuevos cambios de SVN (en caso de que alguien haga cambios en su lado también). ¿Sería esto factible? –

+0

@Jon L .: Sí, necesitarás clonar el repositorio svn utilizando uno de los tres métodos. Esto le permitirá usar Mercurial como cliente para la subversión. A continuación, deberá sincronizar este nuevo repositorio con los cambios del repositorio anterior a través de hg pull. Luego use el nuevo repositorio para enviar los cambios a svn repo. – pyfunc

+0

Bueno ... clone un repositorio vacío del servidor svn, luego hg extraiga los cambios de su repositorio hg actual. – jkerian

Cuestiones relacionadas