Subversion et son utilisation

De LodelWiki.

Explication concernant le fonctionnement du dépôt Subversion de Lodel.

Attention! Cette page est en cours d'élaboration.


Sommaire

Utilisation anonyme (lecture seule)

Le dépôt est accessible en lecture pour les utilisateurs anonymes. Il faut disposer d'un client subversion. Les exemples ci-dessous s'appliquent à "svn", pour l'installer sous Debian : apt-get install subversion. Sur Ubuntu installez le paquet subversion.

La première fois

  • Récupérer les fichiers
 svn checkout http://subversion.cru.fr/lodel/trunk dossier_local
 

Où "dossier_local" désigne le répertoire dans lequel vous voulez télécharger le contenu du dépôt.

  • Créer les liens nécessaires au fonctionnement de Lodel
 cd dossier_local
 ln -s share share-0.8
 ln -s lodel lodel-0.8
 ln -s lodeladmin lodeladmin-0.8

Où "dossier_local" désigne le répertoire dans lequel vous avez effectué le checkout.

Au quotidien

  • Mettre à jour les fichiers : se placer à la racine du projet (ou du répertoire à mettre à jour), puis :
 svn update

Utilisation pour développeurs

La première fois

1. Récupérer son identifiant

http://sourcesup.cru.fr/scm/?group_id=193


2. Configurer l'éditeur de texte à utiliser lors des commits

Si le bac à sable est sur R5, il n'y a rien à faire.
Sinon :

 export SVN_EDITOR=/oh/le/beau/script.sh


3. Créer un bac à sable

Pour être sûr de commiter au bon endroit, il suffit de garder dans les bacs à sable les noms des répertoires utilisés dans le dépôt (trunk, branches). Pour cela, faire un checkout sans spécifier de répertoire local.

  • Pour la version en cours de développement :
 cd ~/public_html
 svn checkout https://subversion.cru.fr/lodel/trunk
 Abrégé : co
  • Pour une version (branche) antérieure :
 cd ~/public_html
 svn co https://subversion.cru.fr/lodel/branches/mabranche


Au quotidien

Mettre à jour son bac à sable

  • En entier : se placer à la racine, puis :
 svn update
 Abrégé : up
  • Un répertoire ou un fichier :
 svn up <mon_fichier>

Obtenir de l'aide

 svn -h <commande_svn>

Ajouter/supprimer/déplacer des fichiers

 svn add <mon_fichier>
 svn rm <mon_fichier>
 svn mv <mon_fichier> <ailleurs>

Ne pas oublier de commiter ensuite

Voir les modifications locales

 svn status

Annulation des modifications locales

 svn revert <mon_fichier>

Consulter l'historique d'un fichier

 svn log <mon_fichier>

Commiter

 svn commit <mes_fichiers>
 Abrégé : ci

Lors de commit, il est très important de respecter le formulaire de saisie :

 Type:ttt<retourchariot>
 Descr:ddd
  • ttt peut être :
    • F pour l'ajout de fonctionnalité
    • BM pour la correction de bug majeur
    • Bm pour la correction de bug mineur
    • S pour la correction de faille de sécurité
    • O pour optimisation du code php ou lodelscript
    • A autres (ce type regroupant les modifications peu importantes qui ne sont pas des bugs : ajout d'image, suppression de fichiers
  • ddd peut être n'importe quelle phrase non nulle


Fonctionnement

Numéros de version

Ils ont la forme x.y.z.

  • x est le numéro de version majeure : il est incrementé lorsque de grosses modifications ont été apportées, et qui cassent la compatibilité avec la version majeure précédente x-1, nécessitant donc de grosses modifications dans les projets pour la migration.
  • y est le numéro de version mineure : il est incrémenté quand il y a de nouvelles fonctionnalités, évolutions, corrections de bugs etc. Par contre un projet basé sur une version lodel x.y devrait être compatible avec une version lodel x.y-1, ce qui n'est actuellement pas le cas (pour la 0.8).
  • z est le numéro de version de correction : il change quand il y a eu simplement des corrections de bugs par rapport à la version x.y.z-1.

Nota Bene : le numéro x est pour le moment à 0 car les critères permettant de dire que Lodel est stable et que la compatibilité entre version existe ne sont pas remplis.

Création des branches et des tags

Le dépôt contient les 3 répertoires suivants : trunk, branches, tags.
Les principaux développements, relatifs à la version instable, se font dans le répertoire trunk.
Les développements relatifs à une release antérieure se font dans une branche spécifique à la release en question, et donc dans l'un des répertoires branches/version_xxxx-bugfixes-branch.
N.B. : aucun développement ne doit être effectué dans le répertoire tags.

Cette organisation permet de :

  • pouvoir sortir des versions correctives de versions antérieures tout en continuant à travailler sur la version en cours ;
  • avoir un tronc correspondant toujours à la dernière version de Lodel, la version dite 'unstable' ;
  • avoir une succession de versions dites stables marquées par des tags et des branches contenant leur(s) correctif(s).


En pratique :

  • À chaque sortie d'une release, il faut créer un nouveau tag, de la forme version_x_y
 svn cp https://subversion.cru.fr/lodel/trunk https://subversion.cru.fr/lodel/tags/version_x_y
  • Lorsque la release est sortie, il faut créer une branche nommée version_x_y-bugfixes-branch. Elle est destinée à recevoir les corrections de bugs rapportés au fur et à mesure sur cette version.
 svn copy https://subversion.cru.fr/lodel/trunk https://subversion.cru.fr/lodel/branches/version_x_y-bugfixes-branch


Liens

Outils personnels