Teddy Payet
CTO Freelance

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;
 
Environnement de développement
PHPStorm
Industrialisation
SVN
Catégorie
Notes de développement, Lignes de commandes

P.-S.

Visuel : Photo by Moja Msanii on Unsplash