version-control - videos - recuperar archivos borrados windows 8
Encuentra archivos eliminados en el historial del repositorio de Mercurial, ¿de forma rápida? (6)
Puede usar hg grep, pero busca el contenido de todos los archivos.
¿Qué sucede si solo quiero buscar los nombres de los archivos eliminados para recuperar uno?
Probé hg grep -I patrón de patrón de nombre de archivo pero esto parece no devolver ningún resultado.
Actualización para Mercurial 1.6
Puede usar los revsets para esto también:
hg log -r "removes(''**'')"
( Editar: tenga en cuenta el doble *
- uno solo detecta las eliminaciones de la raíz del repositorio únicamente ).
Editar : como sugiere Mathieu Longtin, esto se puede combinar con la template de la respuesta de dfa para mostrarle qué archivos elimina cada revisión enumerada:
hg log -r "removes(''**'')" --template "{rev}: {file_dels}/n"
Eso tiene la virtud (para la legibilidad de la máquina) de enumerar una revisión por línea, pero puede hacer que la salida sea más bonita para los humanos al usar %
para formatear cada elemento en la lista de eliminaciones:
hg log -r "removes(''**'')" --template "{rev}:/n{file_dels % ''{file}/n''}/n"
Busque un archivo específico que eliminó de manera eficiente y formatee el resultado muy bien:
hg log --template "File(s) deleted in rev {rev}: {file_dels % ''/n {file}''}/n/n" -r ''removes("**/FileYouWantToFind.txt")''
Muestra de salida:
File(s) deleted in rev 33336:
class/WebEngineX/Database/RawSql.php
File(s) deleted in rev 34468:
class/PdoPlus/AccessDeniedException.php
class/PdoPlus/BulkInsert.php
class/PdoPlus/BulkInsertInfo.php
class/PdoPlus/CannotAddForeignKeyException.php
class/PdoPlus/DuplicateEntryException.php
class/PdoPlus/Escaper.php
class/PdoPlus/MsPdo.php
class/PdoPlus/MyPdo.php
class/PdoPlus/MyPdoException.php
class/PdoPlus/NoSuchTableException.php
class/PdoPlus/PdoPlus.php
class/PdoPlus/PdoPlusException.php
class/PdoPlus/PdoPlusStatement.php
class/PdoPlus/RawSql.php
He tomado otras respuestas y las he mejorado.
Agregado "--no-merges". En proyectos grandes con equipos de desarrollo, habrá muchas fusiones. --no-fusión filtrará el ruido de registro.
Change removes("**")
para sort(removes("**"), -rev)
. Para un proyecto grande con más de 100K conjuntos de cambios, esto hará que los últimos archivos se eliminen mucho más rápido. Esto invierte el orden de inicio en rev 0 para comenzar en punta en su lugar.
Se agregó {author} y {desc} a la salida. Esto dará contexto de por qué se eliminaron los archivos al mostrar el comentario de registro y quién lo hizo.
Entonces para mi caso de uso, era hg log --template "File(s) deleted in rev {rev}: {author} /n {desc}/n {file_dels % ''/n {file}''}/n/n" -r ''sort(removes("**"), -rev)'' --no-merges
Muestra de salida:
File(s) deleted in rev 52363: Ansariel
STORM-2141: Fix various inventory floater related issues:
* Opening new inventory via Control-Shift-I shortcut uses legacy and potentinally dangerous code path
* Closing new inventory windows don''t release memory
* During shutdown legacy and inoperable code for inventory window cleanup is called
* Remove old and unused inventory legacy code
indra/newview/llfloaterinventory.cpp
indra/newview/llfloaterinventory.h
File(s) deleted in rev 51951: Ansariel
Remove readme.md file - again...
README.md
File(s) deleted in rev 51856: Brad Payne (Vir Linden) <[email protected]>
SL-276 WIP - removed avatar_skeleton_spine_joints.xml
indra/newview/character/avatar_skeleton_spine_joints.xml
File(s) deleted in rev 51821: Brad Payne (Vir Linden) <[email protected]>
SL-276 WIP - removed avatar_XXX_orig.xml files.
indra/newview/character/avatar_lad_orig.xml
indra/newview/character/avatar_skeleton_orig.xml
Si está utilizando el banco de trabajo TortoiseHg, una forma conveniente es usar el filtro de revisión. Simplemente presiona ctrl+s
, y luego escribe
removes("**/FileYouWantToFind.txt")
**/
indica que desea buscar recursivamente en su repositorio. Puedes usar *
comodín en el nombre del archivo también. Puede combinar esta consulta con otros conjuntos de revisión usando and
, or
operadores.
de la raíz del proyecto
hg status . | grep "/!" >> /tmp/filesmissinginrepo.txt
usar plantillas es simple :
$ hg log --template "{rev}: {file_dels}/n"