Git fusiona el conflicto solo en la label de la versión en pom.xml

¿Hay alguna manera de evitar combinar conflictos en la label de versión en pom.xml al fusionar el maestro en una twig? Tengo bastantes files pom, 80, y todos ellos tienen la misma versión, que es diferente de uno en el maestro. La ejecución de git mergetool para files de 80 pom solo requiere una label de versión.

Gracias, -Abidi

Probablemente tengas algunas opciones. Ninguno de los cuales es perfecto: – /

1) puedes usar 'git merge -s ours', pero solo debes hacer eso cuando sabes que no necesitas el rest de los cambios también.

2) También puedes usar gitrerere, que ayuda a resolver conflictos al memorizar lo que hiciste la última vez. Puede habilitar su uso globalmente para que siempre "funcione" configurando rerere.enabled. O puede leer la página del manual y hacerlo también a mano.

Lo que siempre hago es cambiar la versión de los modules usando el plugin de versiones maven , antes de fusionarme desde otra twig (con una versión diferente):

 mvn versions:set -DnewVersion=1.1 -DgenerateBackupPoms=false 

Eso cambiará la versión de todos los modules actuales (padres e hijos) a la que especifique como el parámetro newVersion. Después de cambiar la versión, realice una nueva confirmación (git commit …) y luego realice la fusión. Tengo todo esto automatizado usando una tarea de Jenkins, pero no debería ser difícil implementarlo de otras maneras (por ejemplo, script sh).

Eche un vistazo a resolve-maven-version-conflicts.pl . Es una herramienta de combinación específicamente para resolver conflictos pom. -SNAPSHOT cualquier cambio donde ambos lados sean versiones -SNAPSHOT , pero deja cualquier otro conflicto para una resolución posterior.

Esta pregunta relacionada ayuda con más detalles sobre el command de fusión: git – omisión de confirmaciones específicas al fusionarse

También podría usar un controller de combinación personalizado, como en pom-merge-driver . Dependiendo de su flujo de trabajo, puede combinar pom como un file normal, excepto tratar la versión del proyecto de manera diferente: siempre tome la versión de la twig de fusión, o haga una exception al fusionarse con la twig de desarrollo …

Tuve el mismo problema y todas las soluciones que encontré no lo hicieron, imo, correcto. Finalmente, escribí un controller de combinación que solo se encarga de la versión de proyecto / principal y solo de ellos. No se cambia ninguna versión de dependencia ni el formatting del file xml.

Lo lancé hace unos minutos @ https://github.com/cecom/pomutils . Si tiene alguna pregunta, hágamelo saber.