Skip to content

Oxygen svn

Frédéric Glorieux edited this page Feb 8, 2016 · 6 revisions

GitHub est une “forge”, c’est-à-dire un site collaboratif de développeurs. Un fichier XML étant du code source, il peut adopter les mêmes outils que les programmeurs pour organiser la collaboration de plusieurs contributeurs (sauvegarde partagée, historique, gestion des conflits…). GitHub est accessible par un navigateur, mais surtout, par différents protocoles libres de gestion de versions et en premier lieu Git. Malheureusement, le logiciel Oxygen utilisé généralement en édition XML ne propose pas encore d’outil Git, par contre, il en propose un pour le protocole Subversion=SVN (un protocole plus ancien de gestion de versions). Afin de faciliter la compatibilité avec les logiciels anciens, la forge GitHub est capable de comprendre les requêtes subversion, il est donc possible de participer à un entrepôt GitHub sans sortir d’Oxygen.

L’idée principale est de comprendre les étapes suivantes :

  • cloner le dépôt sur son ordinateur
  • modifier un fichier et pousser ses modifications sur le serveur
  • tirer les modifications des collègues avant de modifier un fichier

Ce tutoriel ne couvre pas la résolution des conflits d’édition, on vous conseillera au contraire de les éviter au maximum en ne travaillant pas à plusieurs sur le même fichier.

Les images sont produites avec la version 17.1 d’Oxygen en français, mais la fonctionnalité existe au moins depuis la version 15 du logiciel. On accède au client SVN (=subversion) par le chemin : barre / Outils / Client SVN. L’interface est indépendante de l’éditeur, entièrement dédiée à la gestion des fichiers. La première étape est de “cloner” un dépôt existant, c’est à dire de communiquer l’URL d’un dépôt au client SVN. Pour les projets GitHub, l’URL se trouve toujours au même endroit sur la page d’accueil d’un entrepôt.

Avec le client SVN d’Oxygen, la création d’un dépôt se fait par le scénario suivant :

    1. Commencer par créer le dossier où vous voulez voir tomber vos fichiers XML, prévoir que ce dossier aura des frères
    1. Onglet Dépôts
    1. Bouton extraire
    1. Coller l’URL copiée depuis Github en y ajoutant /trunk (ne pas oublié de préciser la branche “trunk”, sinon le dépôt sera un cran trop haut dans la hiérarchie, ce qui cassera les chemins relatifs)
    1. Vérifier que le dossier de destination plus haut est bien celui que vous voulez (Oxygen veut être intelligent et modifie les chemins sans qu’on lui demande)
    1. Après avoir vérifier que les deux chemins semblent convenables, cliquer le bouton Extraire, sinon, recommencer en 0 ou en 1 Surtout ne commencez pas à travailler avant d’avoir obtenu une arborescence de fichiers propre, il faut qu’elle soit identique à celle de vos collègues pour partager les mêmes chemins relatifs. Il vaut mieux répéter l’opération plutôt que de mal commencer.

L’opération consiste à tirer les fichiers depuis le serveur pour en avoir une copie locale. Le client SVN d’Oxygen se présente alors comme un explorateur de fichiers, représentant ce qui passe effectivement dans vos fichiers. Votre dossier de destination est dès lors muni d’un dossier caché, .svn, qui fonctionne comme une base de données qui va permettre de traquer les modifications. Ce dossier est lu et modifié par le client SVN d’Oxygen, il peut être lu et modifié par d’autres applications subversion (ligne de commande, TortoiseSVN…).

Contrairement à une application commerciale comme DropBox, l’envoi de vos modifications n’est pas automatique (ce qui perturberait vos collègues), il est volontaire. Le client SVN Oxygen permet de (1) repérer les fichiers modifiés (2) “livrer” (commit) vos modifications au serveur distant (3) sans oublier de donner un message à vos collègues. Une identification vous sera demandée, c’est votre nom et votre mot de passe GitHub.

Ce qu’il ne faut jamais oublier avant de modifier un fichier, c’est de toujours mettre à jour sa copie de travail afin d’éviter un conflit avec un collègue. Si deux personnes modifient la même ligne, aucun programme ne saura automatiquement décider qui a raison, ces opérations de régulation sont un peu délicates.

Clone this wiki locally