2009-05-05 16 views
21

A similar question se le ha preguntado recientemente, pero no es lo mismo.interoperación entre mercurial y subversión

El sitio web de Mercurial tiene una lista de comparaciones detailed page con 4 opciones diferentes para que Mercurial y Subversion interactúen.

Me pregunto si alguien por ahí ha intentado uno o más de estos, y podría relacionar experiencias realmente buenas o realmente malas. La nota en la hgsubversion download dice

hgsubversion es una extensión para Mercurial que permite el uso de Mercurial como un cliente de Subversion. En este momento es es no listo para el uso de producción. Usted solo debe usar esto si está listo para hackearlo, y vaya a bucear en las partes internas de Mercurial y/o Subversion.

que es tan invitándome a los letreros que dicen "Abandonar la esperanza, todos ustedes que entran aquí" o "Los intrusos serán arrestados". Así que me pregunto si vale la pena probar esta u otras alternativas para alguien que no tiene mucho tiempo extra para hackear.

+4

+1 por pereza. Con todas las advertencias, no me atrevía a probar ninguna de las opciones :-) –

+0

No lo llamaría "flojo", lo llamaría "ahorrativo". La configuración/administración de una configuración de control de fuente (se supone que es) solo una pequeña parte del trabajo de software, que a su vez es solo una pequeña parte de mi trabajo. O eso o tengo que molestar a nuestro grupo de TI y no lo sabrán, ya que generalmente trabajan con el software "Real" (Windows/IIS/SQLServer, etc.). Así que tengo que usar mi tiempo sabiamente cuando se trata de tareas "pequeñas" como esta. Cuando soy flojo de verdad, me enorgullezco de ello. :) –

+0

"ahora no está listo para el uso de producción": ¿sigue siendo así? – inger

Respuesta

1

He estado usando Subversion durante varios años, pero estoy interesado en probar esta idea distribuida de VCS. (Me gustaría usar git, pero no es tan bueno en Windows, que lo descarta para su uso en mi trabajo. Por lo tanto, me gustaría probar Mercurial.)

Al principio me gustaría empujar y tirar con un servidor Subversion. Así que probé la opción 1, hgsubversión. Estoy en Ubuntu 9.04 (Jaunty) con hg 1.1.2. Seguí las instrucciones dadas en esa página web. Todo parecía instalarse bien. Pero cuando probé el comando hg svnclone, recibí un error de "comando desconocido". Investigar más demostró que ahora solo hace hg clon con la URL SVN con el prefijo svn +. por ejemplo:

hg clone svn+https://server/svn/repo/

Pero entonces, tengo un mensaje de error:

abort: could not import module encoding!

Eso parece ser un known bug, pero después de algún volverse locos, No pude entender lo que debía hacer para solucionarlo.

Resumen: la opción 1 actualmente no funciona para mí. Las otras opciones no se ajustan a mi flujo de trabajo deseado.

Actualización: Lo intenté de nuevo con Mercurial 1.2.1, y obtuve el mismo resultado. Alguien me dijo que la rama en desarrollo mercurial-crew debería funcionar.

+1

necesita las últimas versiones de mercurial y hgsubversion. Sin embargo, ten cuidado con hgsubversion por el momento. Parece que hay mucha refactorización pasando –

+0

Gracias. Agregué una actualización de 1.2.1 y mercurial-crew. –

+0

Sí, necesitas Mercurial 1.3: el módulo de codificación se agregó después de que se lanzó 1.2.1. –

4

Creo que el autor de hgsubversions está siendo un poco paranoico.Si sigues el archivo README, es decir, utiliza adecuadamente versiones recientes de mercurial y subversion, no lo que sea que se instale en o por tu distribución, entonces realmente funciona bastante bien. Asimismo, la documentación incluida está actualizada; mientras que lo que encuentras en la web puede no serlo. Lo he usado durante un par de semanas con resultados razonables, pero no perfectos.

Cuando tiene problemas con las esquinas de los dos sistemas, tiene problemas: hgsubversion y otras extensiones (tengo problemas con hgtasks) no parecen gustar; no está claro cómo se manejan las propiedades, etc.

+0

¡Hola del futuro! He estado usando hgsubversion durante un par de meses de uso diario en el trabajo, y parece bastante bueno. Tiene algunas torpezas en comparación con Mercurial puro (por ejemplo, no poder actualizar desde Svn cuando tengo cambios no confirmados), y se ha estropeado mucho cuando intentaba rebasear un extraño evento de ramificación en Svn (así que no lo hagas) , pero aparte de eso, no hay problema. –

2

Sí, debe usar una versión reciente de "tripulación" de Mercurial, consulte la página CrewRepository en la wiki de Mercurial.

Cuando se lanza Mercurial 1.3 el 1 de julio, hgsubversion debe comenzar a mantener una rama estable. Al menos esa es la palabra en IRC (#hgsubversion en irc.freenode.net).

+0

ooh ahh. Miro hacia el 1 de julio entonces. –

+0

dohhwww, parece que esto no es cierto para hgsubversion; la extensión "convertir" es lo que aparentemente se agregó/lanzó –

+0

La extensión de conversión es la que se envía con Mercurial (y se ha enviado durante mucho tiempo). Lamento que hgsubversión aún no haya lanzado una versión estable, al parecer tuvieron una reescritura mayor de lo que pensaban en el momento en que respondí esta pregunta. –

3

Acabo de empezar a trabajar con la opción 4, hgsvn. A pesar de lo que dice la página de Mercurial, hgsvn 0.1.7 hace que apoye retroceder al repositorio svn.

Mi caso de uso es muy simple: realmente solo quiero la posibilidad de tener ramas locales (en esta etapa). El flujo de trabajo enumerado en la página hgsvn es exactamente lo que he usado y hasta ahora no ha roto nada.

3

Me gustaría secundar la opción hgsvn, es bastante lento si desea duplicar un gran repositorio, pero puede comenzar la revisión cerca de la punta (que es lo que generalmente quiere).

Lo encontré muy robusto, depósitos espejados con más de 5000 revisiones. Puede rechazar los conjuntos de cambios si eso es lo que quiere.

+0

Déjeme agregar un consejo: actualmente uso mercurial + hgsvn + http://arrenbrecht.ch/mercurial/pbranch/ para contribuir a proyectos (de código abierto). Simplemente extraiga el svn repo en mercurial y administre sus parches usando pbranch. A continuación, comunica sus parches por correo electrónico a los responsables del proyecto. – wires

0

He estado usando hgsubversion durante varios meses. Es posible que le falten algunas características, pero está listo para su uso en producción.

OGRE y muchos otros han decidido usar hgsubversion porque es rápido.