Estoy intentando contribuir a un proyecto que usa Subversion. Usé Mercurial y su extensión hgsubversión para clonar el repositorio. Mi trabajo tiene lugar en una rama de características.¿Cómo manejar fusiones con hgsubversión?
¿Cómo mantengo actualizada la rama de funciones con las cosas que suceden en la rama predeterminada (hg speak) también conocido como trunk (svn speak)?
Así que usé hg up feature
para actualizar a la rama de características, luego hg pull
que me dio conjuntos de cambios en la rama predeterminada. Así que hice hg merge default
, comprometí la fusión, luego intenté hg push
para enviar mis conjuntos de cambios a Subversion. Y Mercurial dijo: "Lo siento, no puedo encontrar el padre svn de una revisión de fusión".
Gracias, Ryan. Pero con su sugerencia, mi trabajo no aparecerá en sentido ascendente (es decir, en Subversion). Quería poder comprometerme con la sucursal de Subversion.En realidad, puedo comprometerme con la sucursal de Subversion, pero no puedo fusionarme desde el tronco en Mercurial. (¿Y cómo Subversion "solo nominalmente" tiene ramas? Parece que el soporte para fusionar ramas en Subversion es más débil que en Mercurial, pero no es demasiado terrible. Al menos puedo bifurcar una rama fuera del tronco y luego fusionarme repetidamente desde el tronco fácil y cómodamente. El problema viene cuando quiero reinsertar la rama en el maletero.) – hibbelig
No he sido claro en mi sugerencia, ya que nada en ella te impide empujar río arriba. Solo sugiero que una vez que tengas los conjuntos de cambios en mercurial te limites a una única rama con nombre, ya que la fusión normal entre las ramas mercuriales te impediría presionar a la subversión (como has visto). Mantén todos tus csets en la misma rama nombrada en tierra mercurial, usando múltiples clones si quieres pistas de desarrollo separadas, y deberías estar bien. –
Gracias una vez más, Ryan. ¿Cómo trabajo con múltiples ramas * Subversion *, entonces? Tenga en cuenta que hice una 'hg merge' de dos ramas existentes en Subversion, y luego quise volver a fusionarla con Subversion. Empujar la combinación falló con el mensaje de error anterior. Si hubiera hecho la misma fusión en el lado de Subversion, la fusión habría llegado intacta en el lado de Mercurial (después de 'hg pull'). – hibbelig