libre libre    fcys14 tux asterix pitit Subversionlibre portfolio cisoun tux tux ya kelk1 pitit SubversionSubversion

Aujourd’hui en cours, découverte de subversion, le logiciel de gestion de versions et de travail collaboratif.

Le principe est de travailler à plusieurs sur les même fichiers sans perdre les modifications apportées par les uns et par les autres. On utilise donc un serveur qui stocke les fichiers et chacun travaille sur une copie qu’il met à jour régulièrement. De même régulièrement, chacun reposte ses modifications sur le serveur. Si jamais j’ai édité un fichier et que quelqu’un d’autre l’a aussi édité avant que je le renvoie sur le serveur, alors le système m’en informe et me permet de choisir quelle version garder ou de faire un mix des deux.

Le système permet aussi de revenir ou de consulter des versions antérieures. Il existe d’autres systèmes qui permettent ceci, mais subversion en est un des plus récents. Son avantage sur son prédecesseur (très longtemps utilisé) cvs est qu’il ne garde pas à chaque fois une copie complète du fichier, mais juste les modifications apportées, donc gain de place évident !

Schématiquement (honteusement pompé du cours de mon prof, ça doit venir du web et ne m’appartient pas )

libre capture2 Subversion

libre capture3 Subversion

Ce système a pris le parti de laisser deux personnes travailler en même temps sur un même fichier, mais s’assure juste de la possibilité de faire la mise à jour ou non (contrairement à d’autres systèmes où la personne qui édite pose un verrou).

Créer le dépot

Sous mac et linux, il est généralement installé par défaut. Le serveur n’est qu’un serveur de données. C’est le client qui fait tout le travail.

Pour créer le serveur la commande est

svnadmin create myrepo

dans le répertoire où l’on veut créer le dépot myrepo.

Créer le projet sur le dépôt

La commande

svn import . file:///chemin/et/nom/du/depot/nomduprojet -m "Commentaire"

va importer tous le contenu du répertoire courant pour remplir le nouveau projet sur le dépôt. On peut pratiquer cette commande sur un répertoire vide. Alors, ceci a pour unique effet de créer le projet sur le dépôt.

Le commentaire sert à indiquer que l’on crée le dépôt par exemple. Par la suite, dans les autres commandes de modification du contenu, on ajoutera de même des commentaires.

Commencer à travailler

Pour commencer à travailler, il faut utiliser la commande suivante :

svn co file:///chemin/et/nom/du/depot/nomduprojet repertoirelocal

Alors un nouveau répertoire nommé repertoirelocal va être créé dans le répertoire courant et tout le contenu du projet nomduprojet y est téléchargé.

Modifications locales

Création d’un fichier

Pour créer un fichier, la commande à utiliser est svn add nom sur le fichier ou le répertoire existant à ajouter au projet.

Suppression d’un fichier

Il ne faut pas utiliser la commande rm seul, mais utiliser svn delete nom pour le fichier ou le répertoire. Ça supprime le fichier / répertoire en local et l’inscrit dans les modifications à effectuer sur le dépôt.

Déplacement/Renommage d’un fichier

La commande à utiliser n’est pas non plus mv, mais svn move nomancien  nomnouveau . (Il existe aussi svn copy).

Modification d’un fichier

Il suffit simplement d’éditer le fichier.

Contrôler les changements en attente

Pour cela, utilisons la commande svn status .

Appliquer les changements

Mettre à jour par rapport au contenu du dépôt et vérifier qu’il n’y a pas de conflits

svn update

Résoudre les conflits

La commande update signale les conflits et propose plusieurs options : résoudre plus tard (postpone : p), appliquer les changements « des autres » (theirs-full : tf) ou les miens (mf).

Si l’on choisit résoudre plus tard, il nous reste la possibilité de comparer les versions avec la commande diff et d’éditer le fichier de travail pour faire une compilation qui nous convient. Enfin, ne reste plus qu’à lancer la commande :

svn resolve --accept [state] fichierquiposepb

avec state soit : working, version modifiée pour compilation par exemple, mine-full ou theirs-full pour choisir de garder sa version ou celle du dépôt.

Effectuer les changements

Enfin, la commande

svn commit -m "commentaire"

valide les changements une fois les conflits résolus et passe à la version n+1 en inscrivant dans l’historique le commentaire.

Suivre les changements

La commande svn log permet d’afficher l’historique des changements.

Connexion pas ssh à un serveur svn

svn co svn+ssh://login@ipduserveur/chemin/et/nom/du/repo/projet
Mots-clefs :, , | Classé dans : Libre, Portfolio | Permalien