GeckoGeek.fr

Paradigme d'un lézard

Vendredi 20 Octobre 2017

Tutorial Subversion : commandes fondamentales

Par Vinz le 30/09/2009 dans Linux | 2 commentaires

Dernièrement nous vous avons expliqué comment installer Subversion sur un serveur. Toutefois nous n’avons que brièvement fait le tour de son utilisation. Voici donc un petit récapitulatif des commandes de base SVN ! Nous ne ferons pas la liste exhaustive des possibilités.

Subversion - Logo

Introduction

Quand on utilise SVN il y a deux endroits distincts :

  • Votre espace de travail : votre projet, celui où vous modifiez vos lignes de code
  • Le dépôt : endroit où se trouvent vos fichiers “archivés”. Cela peut être sur votre ordinateur ou sur un serveur Web

Un projet qui utilise SVN est ainsi sur deux “endroits”. Le premier est votre ordinateur, dans le dossier habituel où vous placez vos projets. Le deuxième est sur un dépôt (souvent sur un serveur car accessible depuis plusieurs endroits). Toutefois, le dossier sur votre ordinateur ne sera pas un dossier “lambda” puisqu’il contiendra un dossier caché .svn qui contient la configuration de votre projet. Ceci contient entre autre :

  • L’adresse de dépôt
  • Votre login / password si l’accès est restreint
  • Le numéro de version de vos fichiers
  • La liste des fichiers qui doivent être commité

Ce qu’il faut bien retenir c’est que votre dossier ne doit pas forcément être entièrement commité. Je dirai même, IL NE FAUT PAS qu’il soit entièrement commité. Par exemple il ne faut pas envoyer des bin ou frameworks : c’est gros et cela ne sert à rien.

Administrer les projets sur le serveur

Pour tout ce qui en relation avec la gestion des données sur le serveur il faut utiliser la commande “svnadmin“.

Créer un nouveau projet :

Pensez à bien vous placer dans le répertoire où vous souhaitez créer le projet. Et pour rappel, n’oubliez pas de mettre par la suite les droits de lecture sur le dossier créé (cf l’autre billet).

svnadmin create NOM_DU_PROJET

Exemple avec comme nom “MonSuperProjet” :

svnadmin create MonSuperProjet

Exporter et Importer un projet

Vous pouvez avoir envie de changer de place votre projet subversion ou même juste en faire une sauvegarde. Pour ce faire, voyons d’abord comment exporter le projet :

svnadmin dump /chemin/vers/dossier/MonSuperProjet > /chemin/vers/dossier/sauvegarde.db

Vous devriez avoir une sortie terminal vous indiquant l’exportation de chaque version. Si vous ne souhaitez exporter qu’une seule version, vous pouvez l’indiquer avec l’option -r comme suit :

svnadmin dump /chemin/vers/dossier/MonSuperProjet -r VERSION > /chemin/vers/dossier/sauvegarde.db

Puis si vous souhaitez importer ce projet vous pouvez utiliser la commande suivante :

svnadmin load /chemin/vers/dossier/MonNouveauProjet/ < /chemin/vers/dossier/sauvegarde.db

Notons que /MonNouveauProjet/ doit être un projet svn et non un dossier simple vide :-)

Travailler avec ses projets

Voyons maintenant les commandes les plus couramment utilisées lorsque vous travaillez sur des projets.

Récupérer un projet

Imaginons que vous ayez un projet à l’url https://svn.mon-domaine.com/monProjet et que vous souhaitiez l’importer sur votre ordinateur pour la première fois. Rien de plus simple, il vous suffit de faire un petit “Check Out” :

svn co https://svn.mon-domaine.com/monProjet

Veuillez à bien vous placez dans le répertoire où le projet va être rajouté. En principe le terminal va vous sortir la liste des fichiers ajoutés sur votre ordinateur. Il ne vous reste plus qu’à modifier votre projet et lire la suite !

Ajouter des fichiers au “projet”

Vous allez surement créer un nouveau fichier source, non ? Vous devrez indiquer à SVN qu’il faut le prendre en compte dans le projet :

svn add ./fichier-dossier

Ainsi si vous souhaitez partager les nouveaux fichiers vous n’aurez plus qu’à les envoyer grâce à :

svn commit ./monFichier.cpp -m "Raison du commit"

Par exemple sur un projet avec une compilation, vous n’allez pas ajouter dans le dépôt le binaire créé par votre IDE / Makefile.

Envoyer vos modifications

Imaginons que vous avez modifier des fichiers. Vous souhaitez qu’ils soient envoyés sur le dépôt :

svn commit -m "Message expliquant les modifications effectuées"

Ceci va envoyer tous les fichiers qui ont été modifiés. Si vous ne souhaiter envoyer qu’un seul fichier/dossier, utilisez :

svn commit ./fichier-dossier -m "Message expliquant les modifications effectuées"

Surtout ne pas oublier le message !!! Il permet de connaître les modifications d’une version à une autre.

Récupérer des modifications

Si vous souhaitez mettre à jour votre projet (récupérer les dernières données du dépôt), il vous suffit de taper :

svn update

Et pour ne mettre à jour qu’un seul fichier/dossier :

svn update ./fichier-dossier

Si des fichiers ont été ajoutés / supprimés, le “svn update” se chargera de faire les mises à jour. Attention, pour mettre à jour l’ensemble d’un projet vous devez vous trouver au dossier parent du projet et non être dans un sous dossier. L’effet ne serait pas catastrophique puisque vous ne feriez que mettre à jour le dossier lui même, mais juste lui même. Et parfois on oublie et on travaille sur le reste … et paf les conflits !
La commande retourne une lettre suivie du nom du fichier concerné. En voici la signification :

U = Updated (fichier mis à jour, sans problème)
A = Added (fichier ajouté)
D = Deleted (fichier supprimé)
R = Replaced (fichier remplacé)
C = Conflict (conflit à gérer manuellement - différence entre le serveur et le local)
G = Merged (conflit géré automatiquement)

Informations sur le projet

Si vous souhaitez obtenir des informations sur le projet (URL du dépôt, dernière modification …) il vous suffit de taper la ligne suivant :

svn info

Cela permet d’avoir un bref aperçu du statut du projet en une dizaine de lignes !

Informations sur les différentes versions

Vous n’avez pas touché au projet depuis un certain temps et aimeriez avoir un bref résumé de ce qui a été commité ? Rien de plus simple, tapez :

svn log

Votre terminal va vous sortir tous les logs avec l’auteur, la date et le message de modification. Vous pouvez bien évidemment affiner la recherche, de nombreuses options sont disponibles dont : “-r versionX:versionY“. Ceci vous donnera les mêmes logs mais entre la version X et la version Y. X peut être inférieur ou supérieur à Y, ce n’est pas important :-]

svn log -r 100:110

L’exemple ci-dessus affichera les logs des versions 100 à 110 ! Et si vous voulez en savoir plus, n’hésitez pas à passer par le mode verbose : “-v” qui vous affichera entre autre tous les fichiers qui ont été modifiés pour chaque version !

svn log -r 100:110 -v

Approfondir ses connaissances

Si vous souhaitez approfondir vos connaissances vous pouvez utiliser l’aide intégrée via un terminale. Il existent énormément de commandes vous permettant de gérer vos projets. Mais en général vous n’en avez pas besoin de plus d’un dixième pour pouvoir travailler.
Informations de base et liste des commandes :

svn -h

Informations sur une commande :

svn COMMANDE -h

Exemple si on cherche des informations sur la commande “commit”

svn commit -h
Commentaires (2)
  1. Installer Subversion sur Ubuntu 9.04 (accès HTTPS) | GeckoGeek le 2 Oct 2009 à 13:40

    […] avec un “svn -h” avec un Terminal, soit vous lisez notre billet spécial sur les commandes fondamentales de subversion ! VN:F [1.6.4_902]Notez ce billet !please wait…Rating: 4.3/5 (3 votes cast) Partagez ce billet […]

  2. jeandez le 3 Mar 2012 à 01:00

    bonjour ,
    j’ai un problème avec svn. svn update
    ‘.’ omis

    je ne comprends pas aussi pour svn. s’agit il d’un serveur distant où est copier le travail qu’on fait sur notre machine (je nè pas bien compris votre explication)??
    merci de me donner de l’aide!!


Laisser un commentaire