¿Cómo deshacer los efectos de un commit en Mercurial, manteniendo los commits exitosos?

Mientras desarrollaba una aplicación web, hice un pequeño cambio en una confirmación, y luego procedí más allá. Hoy mi repository ha avanzado bastante adelante. Quiero deshacer los cambios realizados en esa confirmación en particular, manteniendo los cambios realizados en las confirmaciones sucesivas.

¿Cómo hago esto en Mercurial?

Ejemplo: Supongamos en la confirmación 96, que cambié una variable booleana que era verdadera o falsa.

Hoy mi repository está en Rev 678. Deseo deshacer solo los cambios realizados en commit 96.

¿Cómo hago esto?

  • Eliminar changeset con hg strip | hg histedit (-1 changeset en la historia)

o

  • Backout changeset con hg backout (+1 set de cambios en el historial, que deshace los cambios del set de cambios incorrecto)