mercurial - ¿Cómo abandonar una fusión de hg?
merge (4)
Aparentemente solo necesitaba hg update -C -r 3
, que sobrescribe mis archivos locales con la revolución en mente (que es lo que pensé que haría la hg update
, pero me equivoqué). ¡Gracias por mi ayuda!
Soy nuevo en colaborar con Mercurial. Mi situación:
- Otro programador cambió la revolución 1 de un archivo para reemplazar las sangrías de 4 espacios con sangría de 2 espacios. (Es decir, cambió cada línea.) Llame a esa revolución 2, empujada al repositorio remoto.
- He cometido cambios sustanciales rev 1 con varios cambios de código en mi área de trabajo local. Llamar a ese rev 3.
-
hg pull
yhg merge
d sin una idea clara de lo que estaba pasando. - Los conflictos son innumerables y no son realmente sustantivos.
Así que realmente me gustaría haber cambiado mi repo local a sangrías de 2 espacios antes de fusionarme; entonces la fusión será trivial (supongo). Pero parece que no puedo respaldarlo. Creo que necesito hg update -r 3
pero dice abort: outstanding uncommitted merges
.
¿Cómo puedo deshacer la fusión, cambiar el espacio en mi repositorio local y volver a abrir?
Para deshacer una fusión no comprometida, use
hg update --clean
que verificará una copia limpia del original fusion padre, perdiendo todos los cambios.
Por cierto: si solo reviertes la fusión que hiciste y 3 no es tu número de revisión, puedes hacer esto:
hg update -C -r .
Puede descartar cambios no confirmados con el indicador -C (o --clean):
hg update -C -r 3
CUIDADO: ¡Todo lo que no fue comprometido se habrá ido!
Después de eso, probablemente debas usar algún tipo de herramienta de formateo de código para realizar toda la operación, o al menos algunos buscar y reemplazar con expresiones regulares. Algo tan simple como reemplazar lo que coincide con ^____
(use 4 espacios en lugar de guiones bajos) con __
(2 espacios), repetido algunas veces (a menos que tenga algún código anidado insano) debería funcionar.