Soy nuevo en colaborar con Mercurial. Mi situación:
- Otro programador cambió la rev 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 rev 2, empujada al repositorio remoto.
- He cometido cambios sustanciales rev 1 con varios cambios de código en mi espacio de trabajo local. Llame a eso rev 3.
- He
hg pull
edhg merge
yd sin una idea clara de lo que estaba pasando. - Los conflictos son innumerables y no son realmente sustantivos.
Así que realmente desearía haber cambiado mi repositorio local a sangrías de 2 espacios antes de fusionar; entonces la fusión será trivial (supongo). Pero parece que no puedo dar marcha atrás. 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 fusionar?
M-x indent-region
igual que el truco reindent.Por cierto: si simplemente revierte la fusión que hiciste y 3 no es tu número de revisión, puedes hacer esto:
fuente
.
es un acceso directo a la revisión anterior.hg help update
que obtengo: si no se especifica ningún conjunto de cambios, actualice a la punta de la rama con nombre actual ... y la punta no siempre es su revisión actual en la que está trabajando. No lo probé, hasta ahora ..-r .
es lo mismoPara deshacer una fusión no comprometida, use
que verificará una copia limpia de la combinación original original, perdiendo todos los cambios.
fuente
Aparentemente solo necesitaba hacerlo
hg update -C -r 3
, lo que sobrescribe mis archivos locales con la revolución en mente (que es lo que penséhg update
que haría, pero estaba equivocado). ¡Gracias por mi ayuda!fuente
-C
o--clean
es cómo le dice a Mercurial que siga adelante, incluso cuando arroje algunos archivos modificados. Tienes razón, esohg update -r X
normalmente te llevará a la revisión X, pero cuando estás en una fusión debes insistir un poco más :-)