Des astuces et mémos pour SVN
Je travaille encore très souvent sur des projets sous SVN avec grand plaisir. J’utilise des lignes de commandes pour aller plus vite. Il arrive parfois que je me creuse les méninges pour certaines lignes de commandes. Alors, un petit article mémo ne fera pas de mal.
Lorsqu’on est sous SVN, il est parfois utile de voir la liste des éléments qui ne sont pas encore reconnus dans le dépôt.
svn st | grep ^?
Et si on ne veut pas avoir le " ?" et les espaces entre ce " ?" et le nom des éléments :
svn st | grep ^? | cut -c9-
Pour lister tous les éléments qui ont été modifié :
svn st | grep ^M
Pour lister tous les éléments qui ont été ajouté :
svn st | grep ^A
Pour lister tous les éléments qui sont introuvables :
svn st | grep ^!
Si vous désirez afficher tous les éléments autres que modifiés ou ajoutés :
svn st | grep -v ^[AM]
Afficher tous les fichiers ayant été modifié, ou ajouté ou qui ne sont pas reconnus par svn :
svn st | grep ^[AMD\!?]
Il arrive parfois qu’on ait besoin de déposer des fichiers (exemple : un dump d’une base de données) mais sans vouloir télécharger tout le répertoire cible sur son local. Voici la commande adéquate :
svn co http://example.org/url_depot/bdd_dump/ --depth empty
Cela permettra de faire un checkout sur son local sans télécharger tous les fichiers présents sur le dépôt.
Règle générique
De manière générale, SVN en lignes de commande ajoute 9 caractères avant le nom de l’élément affiché. De ce fait, à chaque fois que vous ne désirez pas voir ces 9 caractères (ou 9 colonnes), il faut mettre à la fin de votre commande | cut -c9-
En bash, si on désire exporter le résultat de notre commande dans un fichier, il faut rajouter à la fin de notre commande " > nom_fichier.txt"
Soit pour exemple, la liste des fichiers autres que modifiés et/ou ajoutés :
svn st | grep -v ^[AM] > files.txt
Ajouter de nouveaux fichiers/répertoires au dépôt
for new_element in $(svn st | grep "^?" | cut -c9-); do svn add ${new_element}; done;
Supprimer des fichiers/répertoires obsolètes au dépôt
for delete_element in $(svn st | grep "^\!" | cut -c9-); do svn delete ${delete_element}; done;
Derniers commentaires
# Le 25 septembre à 12:01, par Teddy Payet
En réponse à : Un Nouveau Chapitre : Mon Admission dans un MBA en Intelligence Artificielle et Data Innovation
# Le 25 septembre à 11:20, par vY
En réponse à : Un Nouveau Chapitre : Mon Admission dans un MBA en Intelligence Artificielle et Data Innovation
# Le 21 juin à 13:49, par Teddy Payet
En réponse à : Home Assistant : Routine le matin avant l’école
# Le 21 juin à 10:47, par Teddy Payet
En réponse à : Ma domotique open source
# Le 16 juin à 17:15, par Eric
En réponse à : Ma domotique open source
# Le 7 mars à 09:43, par Jacques Pyrat
En réponse à : Un Nouveau Chapitre : Mon Admission dans un MBA en Intelligence Artificielle et Data Innovation