48 votes

Comment faire pour supprimer tous les fichiers supprimés à partir du référentiel?

J'ai un script dans lequel j'ai ajouter de nouveaux fichiers avant de consacrer mon travail de copie de mon dépôt de cette ligne:

svn status | grep ^\? | awk '{print $2}' | xargs svn add

Maintenant, je veux ajouter une ligne de supprimer du répertoire tous les fichiers supprimés dans ma copie de travail. En d'autres termes, je ne peut pas spécifier un par un, et j'ai besoin de les détecter avec svn status et ensuite automatiquement supprimer. Cependant, la ligne ne fonctionne pas.

svn status | grep ^\! | awk '{print $2}' | xargs svn --force delete

Comme vous pouvez le voir, je l'ai remplacé

"?" par "!" et

"add" par "--force delete"

Pourriez-vous me dire pourquoi ça ne marche pas ?

ps. Je sais que c'est une procédure risquée. J'ai déjà discuté de tout ça. merci

merci

61voto

David W. Points 49436

J'ai juste essayé et il fonctionne parfaitement.

$ svn st | grep '^!' | awk '{print $2}' | xargs svn delete --force
D         groups.pl
D         textblock.pl

Vos fichiers ont des espaces dans leur nom?

ATTENDEZ UNE SECONDE!! Je vois le problème. Vous avez:

svn --force delete

et non pas:

svn delete --force

L' --force est un paramètre de l' delete de commande et de ne pas l' svn commande.

42voto

naitsirch Points 747

J'ai trouvé une autre solution.

svn status | grep '^\!' | sed 's/! *//' | xargs -I% svn rm %

Je l'ai vu sur http://donunix.blogspot.de/2009/02/svn-remove-all-deleted-files.html

2voto

Twonky Points 64

une approche utilisant perl oneliner serait:

svn st | perl -ne 'print "$1\n" if /^\!\s+(.*)/' | xargs svn rm

cela devrait aussi fonctionner avec les caractères d'espace dans les noms de fichier.

edit: amélioration de la regexp

2voto

sdespolit Points 518

qu'en ajoutant que vous pouvez simplement utiliser

svn add --force .

ou

svn --force add .

il ferait la même chose: ajouter tous les fichiers non versionnés à l'exception de ceux correspondant svn:ignore les modèles

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