2012-04-24 10 views
23

Tengo un repositorio hipotético de Mercurial en el disco. Estoy a punto de crear una nueva característica, cuando me doy cuenta de que he creado un completo desorden en el archivo en el que estoy trabajando y quiero revertir ese archivo a su último estado de confirmación.¿Cómo revertir un archivo al estado de "última comprobación" en Mercurial?

Puedo usar hg update para actualizar la copia de trabajo del repositorio, pero eso actualiza todos los archivos.

¿Hay un comando mercurial que puede actualizar solo un archivo?

Respuesta

28

Hay un comando mercurial para revertir archivos. hg revert esto debería revertir cualquier cambio. También puede pasarle un nombre de archivo, por ejemplo, hg revert fileName.

3

Creo que puede escribir hg revert /path/to/file/<file name> y simplemente actualizará ese archivo.

+1

No, eso es Git que tiene este comportamiento extraño para 'checkout' Git (en Mercurial,' pago y envío hg 'es un alias para' hg update'). –

+0

Tiene razón, gracias por corregirme. – Kodi

+0

@Vari ¿Su respuesta es incorrecta entonces? Si es así, por favor elimine. –

11

hg revert fileName revertirá ese archivo a la revisión en la que se encuentre. Si desea revertir todos los cambios, puede ejecutar hg revert --all.

Ambos generarán archivos fileName.orig para que pueda conservar los cambios que desea revertir por las dudas. Si desea revertir el archivo y no tener todos los archivos .orig puede añadir la opción -C: hg revert fileName -C hg revert --all -C

+0

Me parece mejor agregar '* .orig' a mi archivo' .hgignore' y luego simplemente dejar los archivos '.orig' alrededor. Tal vez los necesite algún día :) Si te molestan, puedes usar la extensión de purga para limpiarlos. –

Cuestiones relacionadas