Est-il possible de supprimer tous les fichiers non suivis de mon répertoire de travail? Disons que j'ai ajouté un tas de fichiers à mon répertoire de travail, que je ne les ai pas ajoutés via 'hg add' et que je veux maintenant me débarrasser entièrement de ces nouveaux fichiers?
Je suis sous Windows, bien que j'utilise PowerShell. Une solution combinée est donc également possible ici.
Ajoutez l’extension Mercurial appelée purge. Il est distribué par Mercurial.
Cette extension ajoute une commande "purge" à "hg" qui supprime les fichiers inconnus de Mercurial. c'est-à-dire des fichiers non suivis. Donc, votre commande serait,
hg purge
Il n'est pas activé par défaut, peut-être pour éviter de supprimer accidentellement les fichiers que vous avez oublié d'ajouter.
Pour installer cette extension, ajoutez-la à votre fichier de paramètres Mercurial (.hgrc sous Unix, Mercurial.ini sous Windows).
[extensions]
purge =
Pour activer temporairement cette extension, vous pouvez utiliser
hg purge --config extensions.purge=
La bonne manière sans purge est:
hg st -un0 | xargs -0 rm
Merci! Cela a fonctionné pour moi aussi dans Powershell:
hg st -un | rm
Essayez de suivre:
hg st -un | xargs rm
rm $(hg st -u)
... où -u signifie "non suivi", vous pouvez également choisir un autre état.
Cela devrait faire l'affaire:
hg status | grep '^\?' | sed 's/^\? //' | xargs rm -rf
si vous ne voulez pas utiliser purge:
rm $(hg st | grep ^? | awk '{print $2}')
Vous pouvez utiliser
hg purge --all
supprimer tous les fichiers ignorés et non suivis
(vous devez d'abord installer l'extension de purge comme expliqué dans certaines réponses)
En supposant que vous utilisez un système * nix, vous pouvez exécuter quelque chose comme ceci:
rm `hg st | awk '/\?/ {print $2}'`
à partir de la racine du référentiel Mercurial.
Je ne connais pas de commande Mercurial standard permettant d'atteindre le même objectif, mais je pense qu'il existe de nombreuses options en ligne de commande pour le faire. Je suis sûr qu'il existe de "meilleures" solutions et serais intéressé d'entendre d'autres suggestions.
Veuillez utiliser cette commande avec prudence car elle n'a pas été testée à fond.