Version de développement de WikiNi (accès avec Subversion)
Un dépôt Subversion est ouvert chez Gna !.
https://gna.org/projects/wikini
Subversion (souvent abrégé SVN) est un logiciel informatique de gestion des modifications (versions) du code source d'un projet.
En savoir plus sur Subversion :
Organisation du dépôt SVN
Contrairement à CVS, Subversion ne prend pas lui même en compte la notion de branches et de tags. Ces fonctionnalités sont émulés en utilisant différents répertoires à l'intérieur du dépôt et en copiant tout simplement les fichiers/répertoires où l'on veut. Attention, on réalise ces copies de fichiers à l'aide de la commande svn copy et pas avec la commande de copie de fichiers présente dans votre système d'exploitation. Ainsi, les fichiers copiés contiendront tout l'historique du fichier original. Toutefois, les fichiers copiés occupent moins de place car Subversion ne sauve que la différence avec les fichiers originaux.
Voici l'organisation actuelle du dépôt Subversion du projet Wikini
wikini/
- branches/
- tags/
- wikini-0.4.1/
- wikini-0.4.2/
- wikini-0.4.3/
- wikini-0.4.3-pr1/
- wikini-0.4.3-rc1/
- wikini-0.4.4/
- Root_REL_0_4_1/
- (probablement à supprimer)
trunk/
website/
wikini_style/
Il n'est pas très utile de récupérer l'intégralité de l'arbre du projet. Il est préférable de seulement récupérer (check-out) le tronc ou des branches ou des étiquettes (tags). Le répertoire
trunk (comme un tronc d'arbre) contient la copie principale du projet, appelée la branche « HEAD » dans CVS. Le répertoire
branches contient les versions du projet sur lequel un développeur ou un groupe de développeur peut travailler. Ils permettent à des changements d'être vérifiés et d'être partagés avec d'autres, sans pour autant causer de problème au tronc du projet. Les changements peuvent ensuite être fusionnés avec le tronc ou avec d'autres branches. Le répertoire
tags contient des instantanés du tronc aux étapes importantes de l'évolution du projet, habituellement on utilise les étiquettes (
tags) lors de la sortie d'une nouvelle version majeure du projet.
Les
branches et
tags ont simplement été réalisés en copiant le tronc (
trunk). Tous les fichiers de chaque branche contiennent l'historique jusqu'au moment de la copie ainsi que les changements réalisés par la suite. Les changement peuvent être fusionné (to merge) dans le tronc ou entre différentes branches. Pour Subversion, la seul différence entre les tags et les branches est que les changements ne devraient pas être vérifiés dans les versions étiquetées (tagged). Grâce à l'algorithme de stockage par copie différentielle, créer des tags ou des branches prend donc très peu d'espace dans le dépôt.
Accès (uniquement en lecture) au code source depuis un navigateur
L'accès en lecture au code source de la version de développement est possible pour tous via une interface web.
L'accès en écriture nécessite une demande auprès de l'
EquipeDeDeveloppement.
Il est alors nécessaire d'installer un client Subversion (voir selon votre système d'exploitation).
Accès au code source avec Windows
TortoiseSVN
TortoiseSVN est un client Subversion comportant une interface graphique mais cette interface est complètement intégrée à l'explorateur de fichier de windows. La plupart des commandes s'obtiennent par un "clic-droit" sur les fichiers/répertoires.
Accès anonyme (lecture seule)
- Se placer dans le répertoire dans lequel on souhaite récupérer les sources du projet.
- Y créer un répertoire wikini par exemple.
- Dans ce répertoire faire un clic-droit et choisir SVN Checkout ...
- Pour URL du repository, saisir svn://svn.gna.org/wikini/wikini/branches/wikini-0.5. Le reste des informations doit être correct. Vérifiez-les puis cliquez sur OK.
- Le dialogue de progression de TortoiseSVN liste les fichiers récupérés. Une fois l'arborescence du projet recréée dans votre dossier, vous pouvez fermer la boite de dialogue et commencer à travailler sur les sources.
Accès développeur (lecture et écriture dans le SVN)
ToDo
Accès au code source avec Linux
Client svn en ligne de commande
Il faut taper les commandes suivantes dans le terminal (
xterm,
konsole...)
Accès anonyme (lecture seule)
svn checkout svn://svn.gna.org/wikini/wikini/trunk
Accès anonyme (lecture seule) à la branche 0.5
svn checkout svn://svn.gna.org/wikini/wikini/branches/wikini-0.5/
Accès développeur (lecture et écriture dans le SVN)
- Générer les clés SSH nécessaires à la connexion sur gna.org : ssh-keygen -t rsa (cf. FAQ Gna)
- (Si vous possédez déjà des clés SSH il est inutile d'en recréer de nouvelles)
- Publier la clé publique générée sur gna.org (/home/user/.ssh/id_rsa.pub si vous avez choisi les options par défaut de ssh-keygen) : https://gna.org/my/admin/editsshkeys.php
- (Cette opération n'est à faire qu'une seule fois par clé. Si vous avez déjà publié une clé sur gna, préférez utiliser celle-là sur toutes les machines, car la publication prend un certain temps...)
- Créez un dossier : par exemple : mkdir Wikini
- Positionnez-vous dans ce dossier : cd Wikini
- svn checkout svn+ssh://nom_utilisateur@svn.gna.org/svn/wikini/wikini/trunk
Remarque : vous pouvez copier-coller une commande dans la console en sélectionnant la ligne en question puis en la collant à l'aide du bouton central de la souris. Gnome-terminal accepte également
SHIFT-CTRL-V, quant à Konsole, il accepte
SHIFT-INSERT.
Client svn graphique
Bien sûr il ne faut pas s'imaginer que sous Linux on est obligé de tout faire en ligne de commande ;-) ! On peut aussi utiliser eSVN, RapidSVN ou encore le plugin SVN de Konqueror ou celui d'Eclipse, peut-être même Cervisia... Dans toutes les bonnes distributions Linux, comme d'habitude.
Pour l'utilisation avec Eclipse :
Accès au code source avec Mac OS X
Client svn en ligne de commande
Il est possible sur Mac OS X d'installer l'outil en ligne de commande svn et de récupérer, de la même manière que sous Linux, le code source de Wikini.
Il faut d'abord installer soit :
Regardez la documentation de ces projets afin d'installer le paquet svn (client en ligne de commande)
Il faut ensuite se référer à l'accès au code source avec Linux.
Astuces pour les développeurs
Mettre les informations du dernier commit dans chaque fichier ($Id$)
Avec CVS, le simple fait de placer
$Id$ permettait d'indiquer les informations sur le dernier commit dans un fichier. Avec SVN il n'en est pas de même: par défaut, il n'en tient pas compte ! Il faut donc lui indiquer quelles informations doivent être placées au niveau du
$Id$, ce qui se fait via la propriété
svn:keywords:
- svn propset svn:keywords "Author Date Id Revision" fichier.php
Maintenant
$Id$ est utilisable, ainsi que
$Author$ pour avoir l'auteur de la dernière révision etc. Pour plus d'infos, consultez cette page.
À noter que
svn:propset etc. peuvent être appliqués récursivement à des répertoires entiers en utilisant le paramètre
-R et en donnant un nom de répertoire à la place d'un nom de fichier.
voir aussi