Supprimer récursivement les dossiers .svn sous Windows
Pour une raison ou pour une autre, on peut parfois être amené à récupérer la totalité d’un dépôt .svn sans passser par la commande export. Notre ami Korben a publié un article dernièrement concernant la suppression des dossiers .svn sous Linux.
Ce que je vous propose ici est la même manipulation, mais sous Windows. Certes, des petits malins pourraient se dire qu’il suffit d’installer CygWin (un environnement Linux pour Windows), mais installer tout cela pour uniquement une commande, qui se réalise très bien en Batch… :)
Voici donc la très précieuse commande :
for /r repository %f in (.svn) do rd /S /Q « %f »
Quelques explications ? Allez, je me lance ! Tout d’abord, on effectue une boucle for de manière récursive, lui demandant de mettre dans la variable %f tous les fichiers rencontrés qui satisfont la condition .svn. Ensuite, on supprime le répertoire correspondant (rd, pour remove directory). On veut supprimer le répertoire lui-même ainsi que tous ses dossiers et sous-dossiers (option /s), et ne pas demander de confirmation à l’utilisateur (/q).
Bref, rien de bien compliqué, à condition toutefois de connaître la commande vitale pour les batchs, équivalent du man Linux : commande /?.
Le Batch Windows est souvent obscurci par les fichiers Shell Linux. Mais, il permet de faire cependant des choses intéressantes. :)
Merci énormément pour cette commande ! Elle m’a été d’une très grande aide et j’en ai fait un script paramétrable que j’appelle au besoin. ^^
@Metallizer : n’hésite pas à partager ton script alors :)
Sinon, je ne dirais pas que « commande /? » est l’equivalent du man de linux, mais plutot l’equivalent de « commande –help ». Le man est généralement bien plus complet que « commande –help ».
J’était tellement déséspéré de trouver cette commande pour windows que j’allai tout copier sur un serveur solaris et supprimer les balise à l’aide de la commande fourni sur le site de Korben.info… Heureusement que tu a posté le lien de ce tips vraiment utile dans les commentaires.
Simple et efficace. Merci de partager tes connaissances !
J’te dois une demi heure mon ami ! ;)
Merci beaucoup, très pratique en effet !
Cette petite ligne m’a aussi fait gagner pas mal de temps. Merci !
Merci beaucoup !
Juste pour info, pour que ça passe dans mon script il a fallu que j’apporte quelques modifications, je les partage avec vous :
En gros j’ai supprimé la spécification du répertoire (on prend donc par défaut le répertoire courant) et j’ai doublé les %.
Par contre si un expert batch pouvait m’expliquer pourquoi il faut doubler les %, je suis preneur…
En tous cas merci pour ce billet Jonathan.
Merci beaucoup!
Merci pour cette info, et plus particulièrement à MBX.
Pour le doublement des %, c’est juste parce que tu exécutes ton script dans un batch, et non en prompt simple.
J’imagines que tu as fait un fichier bat pour exécuter ta commande, d’où la nécessité de doubler les %.
Philippe
Merci beaucoup collègue !
ça va grave me faciliter la tâche (intégration projet d’un autre développeur qui a pas cru bon d’exporter mais a copié directement ses sources alàlà)
Sinon si c’est juste pour supprimer (et rien d’autre derriere): faire un rechercher .svn en graphique (bouton droit > rechercher) puis tout selectionner et faire suppr
Mais c’est sur que ca n’est pas utilisable dans un script.