Vous pouvez utiliser hg grep, mais il recherche le contenu de tous les fichiers.
Et si je veux juste rechercher les noms de fichiers des fichiers supprimés pour en récupérer un?
J'ai essayé hg grep -I modèle de nom de fichier modèle mais cela ne semble pas donner de résultat.
utiliser templates est simple :
$ hg log --template "{rev}: {file_dels}\n"
Vous pouvez aussi utiliser revsets pour cela:
hg log -r "removes('**')"
( Éditer: Notez le double *
- un seul détecte les suppressions à la racine du référentiel uniquement .)}
Edit : Comme Mathieu Longtin le suggère, cela peut être combiné avec le template de la réponse de dfa pour afficher les qui fichiers supprimés par chaque révision répertoriée:
hg log -r "removes('**')" --template "{rev}: {file_dels}\n"
Cela présente l’avantage (pour la lisibilité de la machine) de lister une révision par ligne, mais vous pouvez rendre la sortie plus jolie pour les humains en utilisant %
pour formater chaque élément de la liste des suppressions:
hg log -r "removes('**')" --template "{rev}:\n{file_dels % '{file}\n'}\n"
Si vous utilisez TortoiseHg workbench, le filtre de révision est un moyen pratique. Appuyez simplement sur ctrl+s
, puis tapez
removes("**/FileYouWantToFind.txt")
**/
indique que vous souhaitez effectuer une recherche récursive dans votre référentiel. Vous pouvez également utiliser le caractère générique *
dans le nom du fichier. Vous pouvez combiner cette requête avec d'autres ensembles de révision à l'aide des opérateurs and
, or
.
J'ai pris d'autres réponses et je l'ai amélioré.
Ajouté "--no-merges". Sur grand projet avec des équipes de développement, il y aura beaucoup de fusions. --no-fusion éliminera le bruit du journal.
Remplacez removes("**")
par sort(removes("**"), -rev)
. Pour un projet de grande envergure avec plus de 100 000 modifications, les fichiers les plus récents supprimés seront beaucoup plus rapides. Cela inverse l'ordre de commencer à rev 0 pour commencer à tip à la place.
Ajout de {author} et {desc} à la sortie. Cela donnera un contexte quant à la raison pour laquelle les fichiers ont été supprimés en affichant le commentaire du journal et à qui l'a fait.
Donc, pour mon cas d'utilisation, c'était 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
Exemple de sortie:
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
Recherchez un fichier spécifique que vous avez supprimé efficacement et formatez le résultat correctement:
hg log --template "File(s) deleted in rev {rev}: {file_dels % '\n {file}'}\n\n" -r 'removes("**/FileYouWantToFind.txt")'
Exemple de sortie:
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