2010-07-22 10 views
6

Así que trabajando en un proyecto recientemente (solo, sin otros desarrolladores), de alguna manera logré poner en serio la historia con algunas (aparentemente) malas fusiones de repositorios clonados.Mercurial: Corregir un historial de borked

Lo que me gustaría hacer - necesidad de hacer - es solucionar este problema simplemente borrando los últimos 8 commit (según hg glog)

Sí, he hecho algunos cambios en el código después de la Borking Empecé, sin embargo, con solo algunos retoques aquí o allá, nada que no pueda solucionar de memoria.

¿Cómo puedo deshacerme de los últimos 8 commits y volver a empezar desde donde cometí un error?

Respuesta

11

Haga un clon de su repositorio, cuando lo hace, puede especificar el último compromiso que debe ser clonado.

Por lo tanto, si su repositorio tiene 100 conjuntos de cambios y quiere deshacerse de conjuntos de cambios 93 a 100, acaba de hacer esto:

hg clone -r 92 BadRepository CleanRepository 

-> el CleanRepository únicamente incluya conjuntos de cambios del 1 al 92.

Si usa TortoiseHG, puede hacer lo mismo en el cuadro de diálogo Clonar (hay un cuadro de texto "Clonar a revisión")

+3

Esta respuesta no cubre el caso general, termina con un informe parcial si hay hay algunas ramas en el repositorio de origen. – piotr

Cuestiones relacionadas