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 :
- Récupérer le script suivant et le rendre exécutable : Script pour le template de commit - svn Lodel
- Rajouter dans le .bashrc, ou le .profile de l'utilisateur :
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
- Notre dépôt
- Paramètres d'accès : http://sourcesup.cru.fr/scm/?group_id=193
- Viewcvs : http://sourcesup.cru.fr/cgi/viewcvs.cgi/?cvsroot=lodel
- Documentations
- Documentation officielle [en] : http://svnbook.red-bean.com
- La FAQ du CRU :http://www.cru.fr/wiki/faq/sourcesup/gestion_src