Estoy jugando con Mercurial para ver si es adecuado para su uso en nuestra empresa. Uno de los grandes puntos de venta es la capacidad de fusión. Así que he estado jugando con la creación de sucursales y fusionándolas de nuevo en la línea predeterminada. La prueba implicó simplemente agregar un nuevo método (methodA) a un solo archivo Java en una rama, y agregar un método diferente (methodB) en un lugar completamente diferente en el mismo archivo en otra rama.La fusión con MercurialEclipse tiene conflictos que se resuelven automáticamente cuando se fusionan en la línea de comandos
Cuando lo intenté por primera vez en Eclipse utilizando la opción team-> merge, encontré que la primera fusión funcionó bien (es decir, agregó el método A). Cuando trato de fusionar la segunda rama ahora, me dice que hay un conflicto que debo resolver. Esto es muy desafortunado ya que pensé que este simple tipo de fusión era exactamente el tipo de cosa que Mercurial debía manejar con facilidad.
Probé la misma prueba usando la línea de comandos, y esta vez funcionó bien, es decir, ambas combinaciones tuvieron éxito sin necesidad de resolver conflictos. En cuanto a la salida de la consola en Eclipse que está utilizando el siguiente comando para realizar la combinación:
hg -y merge --config ui.merge=internal:fail -r 611ca2784593525cdafd3082b17d3310037a5d58 -f
mientras que cuando corro yo mismo desde la línea de comandos hago simplemente:
hg merge -r 1234
Es el uso de la estrategia de fusión 'interna: ¿falla' causando que esto suceda dentro de Eclipse? Y si es así, ¿es posible cambiar el comportamiento predeterminado para que funcione de la misma manera que en la línea de comandos?
Lo es. Aquí hay un enlace a consejos y trucos en el sitio de HG. http://mercurial.selenic.com/wiki/TipsAndTricks#line-227 (Es la sugerencia 22 al momento de escribir). La única opción que veo es utilizar una herramienta de fusión externa. Ni idea de lo que hace, ya que uso TortoiseHG para la mayoría de mis interacciones HG. La próxima versión de TortoiseHG es REALMENTE agradable ya que ahora es un banco de trabajo, por lo que puede hacer todo desde la interfaz de usuario. – Mikezx6r