precio - Mercurial: forma de evitar omitir la revisión de los ancestros
mercurial svn (2)
Tengo un problema similar al que significa ''omitir la revisión de un antepasado'' cuando usa ''injerto''?
Pero este SO no da soluciones, solo explicaciones.
En más detalles: Ayer un compañero de trabajo cometió un error y lo presionó. Otros compañeros de trabajo y yo agregamos compromisos después de esto. Para corregir este error rápidamente utilicé hg backout para cancelar este número de confirmación 11511. Pero no quiero perder este compromiso, así que creé una nueva rama (desde la confirmación de restitución) e intenté injertar la confirmación 11511 pero Mercurial dice:
omitiendo la revisión de antepasados
Quiero obtener la rama con los cambios de confirmación 11511 para corregir el error. ¿Cuáles son las soluciones para hacerlo?
Mercurial se confunde porque está tratando de injertar un compromiso que ya existe en el historial (y no se da cuenta de que el retroceso lo revirtió).
Hay un par de soluciones posibles. Uno, use la opción -f
para forzar que hg graft
proceda de todos modos:
hg graft -f -r 11511
O bien, puede retroceder la confirmación retirada en la sucursal que creó.
OK, malinterpreté tu pregunta un poco.
La parte debajo de la línea a continuación es cómo volver a aplicar el conjunto de cambios incorrecto si es necesario.
La parte importante aquí es que no estás perdiendo nada. La anulación de un conjunto de cambios no elimina el conjunto de cambios original del historial, sino que crea otro conjunto de cambios que es opuesto al que está rechazando, eliminando de hecho los cambios que introdujo el conjunto de cambios original.
Entonces, hasta que en algún momento decidas regresar esos malos cambios, no tienes que hacer nada. En ese punto, cuando quiera que vuelvan los malos cambios, puede hacer lo que anoté a continuación. lo que hace es actualizar al conjunto de cambios que precede inmediatamente al conjunto de cambios incorrecto original y luego injertar el conjunto de cambios incorrecto en él, esto creará un nuevo encabezado paralelo al conjunto de cambios incorrecto original que ha retirado.
Esta nueva cabeza se puede fusionar posteriormente en la cabeza.
Otra forma de solucionar esto sería simplemente anular el conjunto de cambios de restitución.