Me equivoqué en una fusión. Me gustaría revertir y volver a intentarlo.
¿Hay alguna forma de revertir una fusión antes de que se confirme?
hg revert
no hace lo que me gustaría, solo revierte el texto de los archivos. Mercurial aborta mi segundo intento de fusión y se queja de que la fusión original aún no se ha comprometido.
¿Hay alguna forma de deshacer una combinación después de un hg merge
comando pero antes de que se confirme?
Respuestas:
hg update -C <one of the two merge changesets>
fuente
--clean
es sinónimo de-C
. No estoy seguro de a qué conjunto de cambios.
se referirá, pero siempre será uno de los dos conjuntos de cambios fusionados..
debe limpiar cualquier revisión en la que se encuentre antes de iniciar la fusión. Entonces, si estuviera en r42, intentara fusionarse con r43, fallara, limpiara, estaría de vuelta en un r42 prístino.hg update --clean
funciona, como.
parece ser el valor predeterminado implícito, aunque no está documentado explícitamente ..
en el contexto de una fusión es bastante ambiguo.Después de hacerlo
hg merge
, pero anteshg commit
, su copia de trabajo tiene dos padres: el primer padre es el conjunto de cambios al que había actualizado antes de la fusión y el segundo padre es el conjunto de cambios con el que se está fusionando. Mercurial no le permitiráhg merge
volver a hacerlo siempre que su copia de trabajo tenga dos padres.Tiene dos opciones sobre cómo proceder:
Si desea cancelar la fusión y volver al punto de partida, haga
Esto actualizará la copia de trabajo para que coincida con el primer padre:
.
siempre denota el primer padre de la copia de trabajo.Si desea volver a fusionar algunos archivos, haga
Esto volverá a ejecutar las herramientas de combinación como cuando lo hizo
hg merge
. El comando resolve es bueno si descubre en un momentohg merge
que sus herramientas de combinación están mal configuradas: corrija la configuración y ejecutehg resolve --all
. Puede ejecutarhg resolve
tantas veces como desee hasta que esté satisfecho con la combinación.fuente