¿Hay alguna forma de fusionar (interdiff) conflictos automáticamente entre 2 twigs principales y una twig base?
Estaba tratando de hacerlo en el nivel de parche
VersionA es mi base
La versión B está ramificada de VersionA
La versión B tiene un mod adicional aplicado, Base + ModB
VersionC está ramificado de VersionA
Manualmente aplicando parches, puedo derivar un parche A: B y A: C, y aplicarlos a la versión A secuencialmente. Sin embargo, si los dos entran en conflicto en las áreas en las que se aplican (como editar la misma área), se rompen.
He probado varias herramientas como interdiff y combinationiff para crear un parche combinado manualmente sin éxito (estoy en Windows e interdiff es compatible con cygwin, pero no sé si el UNC es un problema, hasta ahora no lo hago). piense así), especificando tales como salidas como Unified vs Contextual debido a requisitos interdiff / combinados.
Entonces … ¿hay alguna manera de que pueda hacer una Versión A como mi Base, y un cambio combinado de la versión A: B && A: C como mi cabeza? ¿Y hacer algún tipo de request de extracción de 3 vías?
Si surge algún conflicto, espero que Git pueda abordarlos de forma inteligente haciendo infame >>>> y ===== y <<<<< fusión de conflictos, que es completamente aceptable en este momento.
En última instancia, me gustaría encontrar una manera de hacerlo en un nivel de parche mediante la combinación de parches. Veo que git (hub) tiene algunas opciones para trabajar con parches de 3 vías y parches de correo electrónico con git apply y git patch y git format-patch.
esto también ayudó: Git pull da conflictos con la estrategia del pulpo
A pesar de que no estoy tirando desde el control remoto y de tirar, se fusiona cuando se trabaja localmente (el command funciona exactamente igual).
Lo más cercano sería una fusión de pulpo (fusión de múltiples HEAD):
git merge BC
Tenga en count que el order puede ser importante: " Git pulpo fusionar order de múltiples twigs ".
El OP thistleknot agrega en los comentarios :
La fusión no funcionó inicialmente hasta que supuse que me había separado de un ancestro común en el "punto equivocado" más o less.
No lo sabía hasta que miré los files de salidamerge*.*
Y vi que cada file de fusión era un file fuente. Uno de la versiónB
y la versiónC
y el ancestro común deB
yC
Una vez que lo descubrí, pude hacer algo más de ramificación mágica, y la fusión funcionó, con<<<
y====