tortoise tag create svn mercurial interop hgsubversion hgsvn

create - svn tag



Interoperación entre mercurial y subversión. (6)

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 admite el retroceso al repositorio svn.

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

Una pregunta similar se ha hecho recientemente, pero no es lo mismo.

El sitio web de Mercurial tiene una página detallada de comparaciones de 4 opciones diferentes para que Mercurial y Subversion puedan interoperar.

Me pregunto si alguien por ahí ha intentado uno o más de estos, y podría relacionar alguna experiencia realmente buena o mala. La nota en la descarga de hgsubversion dice

hgsubversion es una extensión para Mercurial que permite utilizar Mercurial como un cliente de Subversion. En este momento no está listo para su uso en producción. Solo debe usar esto si está listo para piratearlo y sumergirse en los aspectos internos de Mercurial y / o Subversion.

que es casi como señales que me invitan a decir "Abandona la esperanza, todos los que entren aquí" o "Los intrusos serán arrestados". Así que me pregunto si vale la pena probar esta o cualquiera de las otras alternativas para alguien que no tiene mucho tiempo extra para piratear.


Creo que el autor de hgsubversions está siendo un poco paranoico. Si sigue el archivo README, es decir, use las versiones más recientes de mercurial y subversion, no es lo que sea que esté instalado en su distro o no, entonces realmente funciona bastante bien. Asimismo, la documentación incluida está actualizada; mientras que lo que encuentre en la web puede no serlo. Lo he estado usando durante un par de semanas con resultados razonables, pero no perfectos.

Cuando llegas a las esquinas de los dos sistemas, tienes problemas: la subdivisión hgs y otras extensiones (tengo problemas con hgtasks) no parecen gustarse entre sí; no está claro cómo se manejan las propiedades, etc.


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 lo que lo descarta para mi trabajo. A continuación, me gustaría probar Mercurial).

Inicialmente me gustaría empujar y jalar con un servidor Subversion. Así que probé la opción 1, hgsubversion. 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". La investigación adicional demostró que ahora solo hace clones hg con la URL SVN con el prefijo svn + . p.ej:

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

Pero entonces, recibí un mensaje de error:

abort: could not import module encoding!

Ese parece ser un error conocido , pero después de algunos problemas, no pude averiguar qué se supone que debo hacer para solucionarlo.

Resumen: la opción 1 actualmente no es funcional 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 de la mercurial-crew en desarrollo debería funcionar.


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

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


Me gustaría utilizar la segunda opción hgsvn , es bastante lento si desea reflejar un gran repositorio, pero puede comenzar con la revisión cerca de la punta (que suele ser lo que quiere).

Me pareció muy robusto, repositorios duplicados con más de 5000 revisiones. Puedes rechazar los conjuntos de cambios si eso es lo que quieres.


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

Cuando Mercurial 1.3 se lance 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).