2012-03-16 49 views
21

En algún momento en el pasado tenía un "foo.txt" que estaba bajo el control de fuente Mercurial. Sin embargo, ahora ha sido eliminado.Cómo localizar y recuperar un archivo eliminado

¿Cómo puedo recuperar el archivo cuando no conozco la última revisión de Mercurial en la que se eliminó el archivo?

+0

Ver también [¿Encontrar archivos eliminados en el historial del depósito de Mercurial, rápidamente?] (Https://stackoverflow.com/questions/1013550/find-deleted-files-in-mercurial-repository-history-quickly) para obtener más información sobre la localización eso. –

Respuesta

22

Si conoce la ruta exacta para el archivo, se puede hacer algo como:

hg log -l 1 path/to/foo.txt 

Esto le mostrará el último conjunto de cambios, donde foo.txt se modificó, por lo que será capaz de restaurar el archivo de esta revisión.

Una vez que tenga la revisión correcta, sólo tiene que hacer:

hg revert -r <my revision> path/to/foo.txt 
hg commit -m "add the foo.txt file again" 
+2

No pude hacer que tu comando de registro funcione. No mostraría en qué revisión se produjo la eliminación. Tenía que hacer 'hg log -l 1 --removed path/to/foo.txt'. –

9

Uso revsets:

hg log -r "removes('path_to_file')" 

Dónde path_to_file puede haber nada documentado en hg help patterns, incluyendo una ruta completa, un pegote o una expresión regular.

Editar: Incorporated Comentario de Brian sobre poner path_to_file entre comillas simples.

+2

Esto funciona para mí si incluyo el 'path_to_file' en comillas simples. –

Cuestiones relacionadas