2012-03-16 22 views
21

In passato avevo un "foo.txt" che era sotto il controllo del codice sorgente Mercurial. Tuttavia ora è stato cancellato.Come individuare e recuperare un file cancellato

Come posso recuperare il file quando non conosco l'ultima revisione Mercurial in cui il file è stato cancellato?

+0

Vedere anche [Trova i file cancellati nella cronologia del repository Mercurial, rapidamente?] (Https://stackoverflow.com/questions/1013550/find-deleted-files-in-mercurial-repository-history-quickly) per ulteriori informazioni sulla localizzazione esso. –

risposta

22

Se si conosce il percorso esatto del file, si può fare qualcosa di simile:

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

Questo ti mostrerà l'ultimo changeset in cui foo.txt è stato modificato, in modo da essere in grado di ripristinare il file da questo revisione.

Una volta che hai la revisione destra, si può semplicemente fare:

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

Non riesco a far funzionare il comando di registro. Non mostrerebbe quale revisione è avvenuta l'eliminazione. Ho dovuto fare 'hg log -l 1 --removed path/to/foo.txt'. –

9

Uso revsets:

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

Dove path_to_file può essere nulla di documentato in hg help patterns, tra cui un percorso esatto, un glob o un'espressione regolare.

Modifica: incorporato commento di Brian su mettere path_to_file tra virgolette singole.

+2

Questo funziona per me se accludo 'path_to_file' tra virgolette singole. –