#1 Le 03/07/2012, à 18:10
- tcharlss
[Résolu] 'svn update' récursif sur un seul niveau
Bonjour,
Je cherche une petite commande qui me ferait gagner du temps pour mettre à jour des plugins Spip récupérés via SVN.
Mes dossiers sont organisés comme suit :
-plugins Spip
-pluginA
-sousdossier
-sousdossier
...
-pluginB
-sousdossier
-sousdossier
...
Actuellement je lance la commande 'svn update' à la main dans chaque dossier pluginA, pluginB... sachant qu'il y en a une bonne cinquantaine, c'est une sacré perte de temps.
J'ai trouvé la ligne suivante sur internet pour automatiser le processus, elle exécute la commande 'svn update' dans tous les dossiers, quel que soit leur niveau.
find . -name ".svn" -type d -ls -exec svn update {}/.. \;
Comment restreindre ça aux dossiers de premier niveau ? (c.a.d pluginA, et pas les sous-dossiers)
Dernière modification par tcharlss (Le 03/07/2012, à 18:21)
Hors ligne
#2 Le 03/07/2012, à 18:13
- nesthib
Re : [Résolu] 'svn update' récursif sur un seul niveau
find […] -maxdepth 1
sinon :
for dossier in */
do
svn update "${dossier}"
done
(attention si les dossiers ont des noms spéciaux)
GUL Bordeaux : Giroll – Services libres : TdCT.org
Hide in your shell, scripts & astuces : applications dans un tunnel – smart wget – trouver des pdf – install. auto de paquets – sauvegarde auto – ♥ awk
⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn
Hors ligne
#3 Le 03/07/2012, à 18:17
- tcharlss
Re : [Résolu] 'svn update' récursif sur un seul niveau
Après une recherche un peu plus poussée, j'ai trouvé ce script qui marche au poil
#!/bin/bash
update ()
{
if [ -d $1/.svn ]
then
echo "Mise à jour de $1..."
svn up $1
else
for i in `ls $1`
do
if [ -d $1/$i ]
then
update $1/$i
fi
done
fi
}
if [ "$1" == "" ]; then
echo "Mise à jour SVN dans `pwd`..."
update .
else
echo "Mise à jour SVN dans $1..."
update $1
fi
Hors ligne
#4 Le 03/07/2012, à 18:21
- tcharlss
Re : [Résolu] 'svn update' récursif sur un seul niveau
@nesthib : la 2ème commande marche très bien, merci !
Hors ligne