56 votes

Comment supprimer automatiquement tous les fichiers .orig dans Mercurial working tree?

Pendant les fusions mercurial feuilles .orig fichier pour n'importe quel suspens fichier. Mais après avoir manuellement la résolution de problèmes et de marquage d'un fichier correct, il ne supprime pas la .orig fichier. Peut-il être supprimé automatiquement par une commande?

Je travail sur un Mac donc je ne peux utiliser quelque chose comme:

find . -iname '*.orig' -exec rm '{}' ';'

et alias ou quelque chose, mais je préfère utiliser quelque chose comme hg nettoyage...

Mise à JOUR:

Depuis quelques temps maintenant, la Purge de l'extension est fournie avec Mercurial, et permet de résoudre ce problème joliment.

69voto

Martin Geisler Points 44779

Personnellement, j'utilise

$ rm **/*.orig

si je suis fatigué de la .orig fichiers. Cela fonctionne dans Zsh et en Bash 4 une fois que vous exécutez shopt -s globstar.

Mais si vous utilisez un autre shell ou d'une solution intégrée, alors peut-être que vous aimerez la purge de l'extension. Qui vous permet de supprimer tous les sans traces de fichiers avec

$ hg purge

Vous pouvez supprimer tous les sans traces et de fichiers ignorés avec

$ hg purge --all

Un avantage de l'utilisation d' hg purge c'est que ce sera également le nettoyage des répertoires qui se vide après la suppression de fichiers. L' rm ligne de commande il suffit de laisser les répertoires vides derrière.

34voto

vectoroc Points 301

btw. find utilitaire a une action -delete afin que vous puissiez taper uniquement:

find <path-to-files> -name '*.orig' -delete

15voto

mlissner Points 2158

Si vous souhaitez simplement supprimer les fichiers .orig et que vous vous trouvez sur un ordinateur Windows, les éléments suivants semblent bien fonctionner:

 D:\workspace>hg purge -I **/*.orig --all
 

Cela supprimera tous les fichiers non suivis se terminant par .orig, mais ne supprimera pas les autres fichiers non suivis, comme le feraient les autres réponses.

Vous pouvez tester cela avant de l'exécuter en plaçant également le drapeau --print .

4voto

mccrappy Points 21

Ce qui suit supprimera les fichiers .orig de l’ensemble de votre hiérarchie de copies de travail et fonctionnera également pour les chemins contenant des espaces:

 find . -name *.orig | while read -d $'\n' file; do rm -v "$file"; done;
 

J'utilise un alias dans mon fichier .bash_profile:

 alias clearorig='echo "Removing .orig files..."; find . -name *.orig | \
while read -d $'\''\n'\'' file; do rm -v "$file"; done;'
 

1voto

mahe madhi Points 855

J'ai posté cette réponse avant. Mais c'est le bon endroit pour cette réponse.

J'ai fait ce fichier batch moi-même.

IF "%1%" == "d" (
    del /s *.orig
    del /s *.rej
 ) ELSE ( 
    del /s /p *.rej
    del /s /p *.orig
 )

Aide: Enregistrer ce contenu comme orig.chauve-souris

  1. Exécutez orig d supprimer tous les rejets et les orig fichiers à la fois, sans confirmation
  2. Exécutez orig supprimer les fichiers avec confirmation [mécanisme de Sécurité]

Espérons que cela est utile.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X