2010-08-18 4 views
15

Ocasionalmente, confío un código al repositorio, agrego un comentario/resumen, luego leo el resumen y me doy cuenta de que cometí un error o debería haber incluido un poco más de información. ¿Es posible editar el resumen después de una confirmación en TortoiseHg? Estoy usando la versión 1.1¿Es posible editar un resumen después de un commit usando TortoiseHg?

+1

Consulte esta pregunta para obtener una respuesta actualizada sobre cómo hacer esto en TortoiseHg: [¿Cómo puedo editar un mensaje de confirmación incorrecto en TortoiseHG Mercurial?] (Http://stackoverflow.com/questions/18192569/how-do-i -edit-an-incorrect-commit-message-in-tortoisehg-mercurial) – User

Respuesta

7

Si esa es la última confirmación, puede presionar el botón "Deshacer" en el diálogo de confirmación (es una interfaz al hg rollback) y luego volver a enviar los mismos archivos con un nuevo mensaje. Si se trata de una confirmación en medio del árbol, debe usar la extensión mq para eliminar todas las confirmaciones posteriores y volver a aplicarlas. Y si la confirmación con un resumen incorrecto se envía a un repositorio público, debe aceptarlo y aceptarlo, ya que no debe cambiar las confirmaciones publicadas.

1

Si se compromete, pero no empujado, puede revertir la última confirmación utilizando

hg rollback 

no estoy seguro de que esta funcionalidad se implementa en TortoiseHG, pero siempre se puede abrir consola, vaya al repositorio y escriba este comando por cuenta propia.

3

A juzgar por las respuestas .. así que la respuesta es la suma arriba,

, es posible si la última acción fue la confirmación de ese conjunto de cambios en cuestión (en cuyo caso, ejecutar la reversión de comandos), y

sin, no es posible, no fuera de la caja (sin la extensión mq y una gran cantidad de gruntwork), si el conjunto de cambios en cuestión ya ha sido empujado o posteriores registros de entrada tienen sido hecho.

Estoy publicando esta respuesta porque las otras respuestas no admiten el 'no', solo el 'si'. :) Siéntete libre de votar, solo quería deletrear las inferencias aquí.

6

Phil - Voy a publicar la misma respuesta que acaba de publicar en this question (pedido después de la suya):

Una manera apropiada de hacer esto es utilizar histedit. Histedit le permite eliminar, modificar, combinar o editar sus compromisos previos.

Histedit no se distribuye con Mercurial y no se puede utilizar con TortoiseHg, pero el uso de la línea de comandos es muy simple:

> hg histedit <rev>

donde es la revisión que desea cambiar el comentario sobre. Histedit generará una lista de conjuntos de cambios y le mostrará su SHA1. Además de cada conjunto de cambios, hay una palabra que indica qué hará histedit con cada conjunto de cambios una vez que cierre la ventana de texto. Junto al conjunto de cambios que desea modificar, reemplace 'pick' por 'edit'. Cierre la ventana de texto y luego emitir este comando:

> hg histedit --continue

y aparecerá otra ventana de texto que contiene el mensaje de registro. Cambia el mensaje a lo que quieras. Puede hacer esto para múltiples conjuntos de cambios de una vez, siempre que los archivos no se hayan compartido aún. Este es un uso bastante trivial de histedit, usos más complicados que implican la combinación de confirmaciones o la eliminación de una parte de alguna confirmación.

+0

+1 para la información. Gracias –

+0

También puede cambiar 'pick' por' mess' (en lugar de 'edit') y le permitirá simplemente editar el mensaje de resumen. – wfaulk

10

Use colas mercuriales para convertir los conjuntos de cambios en parches, luego quite esos conjuntos de cambios y vuelva a aplicar los parches de nuevo a su repositorio.

Cuando se crean los parches, se almacenan en la carpeta .hg/patches de su repositorio y puede editarlos (incluido el mensaje de confirmación) antes de volver a aplicarlos.

  • habilitado las extensiones Colas de Mercurial (MQ)
  • el botón derecho del ratón y seleccione Revisión de importación a MQ para cada cambio de conjunto para convertirlos en parches en la cola de parche
  • Activar la ventana de cola de parches en el menú Ver
  • Seleccione la Un-Se aplican todos los parches flecha en la cola de parche para despojar a los cambios en sets de distancia
  • Editar los archivos de revisión en .hg/pa tches
  • Seleccionar Aplicar Todos los parches
  • Haga clic en el parche y seleccione acabado aplicado a cerrar la cola
+0

Esto funciona muy bien. Al igual que con las otras sugerencias, debe hacerse antes de empujar –

1

TortoiseHG todo el tiempo que no había empujado:

Marcos última revisión (que se va a ammended),

haga clic en la marca verde en la parte superior como si quisiera comprometerse.

Abra el triángulo del menú directamente desde el botón "confirmar" en el lado derecho y seleccione "ammend current version" en lugar de "commit changes".

Aquí tienes.

Cuestiones relacionadas