Consecuencias del uso de injerto en Mercurial

Recientemente ha habido varias preguntas sobre omitir cambios al mantener las ramas de lanzamiento en Mercurial. Por ejemplo

Mercurial: los cambios específicos de la rama siguen volviendo después de la fusión ficticia ¿Por qué los retrocesos mercuriales en una rama afectan a otras ramas?

Desde que se introdujo en 2.0, me he preguntado sobre el uso degraft para evitar este problema. Dado un árbol de revisión como este:

A---B---C---D---E---F---G---H---I---J

Supongamos que necesitamos crear una rama de lanzamiento que omita el cambio del MalE.

hg update -r D
hg graft "F::J"

dándonos

A---B---C---D---E---F---G---H---I---J
             \
              --F'--G'--H'--I'--J'
Q1: ¿Qué acaba de pasar aquí? Puedo entender esotransplant habría generado parches a partir deF::J, y luego los aplicó aD, perografte dice que @ usa la combinación de 3 vías en lugar de parches. Entonces ... ¿cómo funciona eso? ¿Por qué es mejor?

Digamos que ahora arregloE, y fusionar eso en mi rama de lanzamiento.

                  --E2-----------------
                 /                     \
A---B---C---D---E---F---G---H---I---J---M1
             \                            \
              --F'--G'--H'--I'--J'---------M2--

M1 es una fusión directa; Nada especial allí. M2 está fusionando ramas que tienen cambios "iguales" (o al menos equivalentes) en.

P2: ¿Es esta combinación solo una combinación normal de 3 vías usandoD, J' yM1? P3: ¿Mercurial ha almacenado / usado información adicional sobre la operación del injerto para ayudarlo con la fusión?

Y finalmente..

P4: ¿Cuáles son los posibles problemas con un flujo como este?

Respuestas a la pregunta(4)

Su respuesta a la pregunta