Subversion et son utilisation

Un article de LodelWiki.

Jump to: navigation, search

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

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


Sommaire

[modifier] 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.

[modifier] 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.

[modifier] Au quotidien

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

[modifier] Utilisation pour développeurs

[modifier] 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


[modifier] 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


[modifier] Fonctionnement

[modifier] 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.

[modifier] 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


[modifier] Liens