2010-11-03 13 views
26

En Mercurial tengo un viejo conjunto de cambios que está bien aparte de las alteraciones en un solo archivo. ¿Cómo puedo revertir las modificaciones a ese único archivo?Mercurial revert/retroout un solo archivo

Incluso el solo hecho de poder ver el estado del archivo en el conjunto de cambios anterior sería bueno, entonces podría cortar & pegar.

Mi cliente Mercurial es TortoiseHg.

Respuesta

11

a partir de TortoiseHg 2.8.1

  1. commit en caso de que algo va mal
  2. derecho haga clic en la revisión que desea volver a utilizar, seleccione Examinar en la revisión
  3. Encuentre el archivo que desea recuperar esta revisión, haga clic derecho, 'Revertir a esta revisión (Ctrl + Shift + R)
  4. Repetir 3 para todos los archivos que desea revertir
2

Al menos he descubierto la respuesta a la segunda parte. Para ver el contenido de un único archivo en una revisión anterior, haga lo siguiente en TortoiseHg:

  1. Haga clic con el botón derecho en el archivo y seleccione repositorio explorador.
  2. Haz clic en la revisión a la que quieras volver.
  3. Haga clic con el botón derecho en el archivo en el panel inferior izquierdo. Seleccione vista en revisión o guarde en revisión.
7

Abra Repository Browser, vaya a los cambios interesados. Verá una lista de archivos modificados. Elija el archivo que está ocupado y haga clic en Revert file contents

12

La respuesta de Raghuram ya no es correcta debido a los cambios estilísticos (~) en TortoiseHG. "Repository Browser" ha cambiado de nombre "TortoiseHG Workbench", pero, más importante aún, "Revertir el contenido del archivo" ya no es una acción en el menú contextual.

partir de la versión 2.0.4, usted querrá:

  1. de comprometer su repositorio actual en caso de que algo va mal.
  2. Abrir el conjunto de cambios relevantes en la "TortoiseHG Explorador"
  3. En la lista de archivos, haga clic en el archivo que el que revierta.
  4. Seleccione "Volver a la revisión" en el menú contextual.
  5. Aparecerá un cuadro de diálogo de confirmación que contiene una casilla de verificación con la etiqueta "Revertir todos los archivos a esta revisión". Asegúrate de que esté desmarcado.
  6. Hit "OK".
  7. Verifique que solo se revirtió ese archivo. Si todo se revirtió, actualice a la revisión creada en el paso 1.

La primera vez que probé esto, no estoy seguro de lo que hice mal, pero revertí todo el repositorio en lugar del único archivo. Por lo tanto, definitivamente asegúrese de confirmar una nueva revisión antes de intentarlo.

+1

Se revierte a esta revisión, pero no revierte el cambio en la revisión en sí. Muy inconveniente –

+0

No estoy muy seguro de lo que estás buscando. ¿Quizás quieras volver a la revisión antes de eso? – geppy

+0

Sí, quiero revertir la mitad de algunas confirmaciones, por ejemplo, varios archivos. Esto significa que quiero revertirlos a las revisiones que tenían antes de este compromiso. Así que tengo que buscar en el historial de cada archivo, encontrar la revisión antes de mi confirmación y revertirla por separado. 10 archivos y odias HG. –

1

Para ver una versión anterior de un archivo con TortoiseHg (a partir de la versión 2.2.1), abra TortoiseHG Workbench, haga clic con el botón secundario en una versión anterior y haga clic en "Examinar a ..."

5

CLI-versión, aplicable a cualquier versión (fresco) de TortoiseHG

Con el fin de deshacer los cambios solamente en el archivo, introducidos en CSET conjunto de cambios, utilizar esta forma de backout

hg backout -r CSET --include FILE

+1

No estoy seguro de que esto haga lo que quiero. Creo que esto revertiría las alteraciones para un archivo en un conjunto de cambios específico. Me gustaría revertir un archivo a exactamente cómo era en un conjunto de cambios específico, ignorando todos los changsets posteriores. –

+0

Funciona a la perfección – Pykler

0

Mientras que la recomendación de utilizar de Browse at rev... TortoiseHg le ayudará a ver lo que se cambió (es decir, qué es lo que podría querer hacer retroceder), no lo ayudará a retroceder el archivo; si, como sugiere más de una respuesta, elige Revert to Revision, solo estará retrocediendo cambios posteriores a, no el cambio en el conjunto de cambios

La forma más fácil de deshacer un conjunto de cambios para un solo archivo (por lo menos, a partir de TortoiseHg 2.6.1):

  1. Examinar para el archivo en el Explorador de Windows, y seleccionarlo
  2. botón derecho del ratón y en el submenú contexto TortoiseHg, elija Revision History
  3. Seleccione la revisión antes de la el que usted está tratando de retroceder
  4. botón derecho del ratón y elegir Revert to Revision
  5. Asegúrese de que el "recuperar todos los archivos en esta revisión" casilla de verificación no está activada (se sea por defecto después de seguir estos pasos)

Por supuesto, si por "viejo conjunto de cambios" que quiere decir que hay cambios posteriores ese archivo que desea conservar, no hay forma de hacerlo excepto para examinar el conjunto de cambios y deshacer manualmente los cambios.

Cuestiones relacionadas