Carnet Wiki

La Zone Facile

Version 9 — Juin 2010 — 82.126.xx.xx

La zone c’est pas un site pour promeneurs, c’est un site pour programmeurs ! Alors une chose est claire : ça pourrait être plus facile de s’y retrouver.

Cette page vise à collecter les repères et jalons... et même, parfois, des idées pour faciliter les choses par des modifications in situ, même si il semble que le paramétrage de trac soit particulièrement ardu.

Enfin, les mauvais esprits considèreront qu’elle ouvre une brèche dans une politique de « security by obscurity », mais fort heureusement, il n’y en a pas dans les spipeurs.

Pas LA mais LES zones !

Il y a plusieurs sortes de zones SVN, et quand on fait une recherche avec google, c’est pas toujours évident de savoir où est-ce qu’on atterrit, car les zones se ressemblent toutes, avec l’interface insipide de trac.

-  Certaines zones SVN sont pour le core de SPIP, d’autres sont pour les plugins et autres outils ou sites de la galaxie.

Par exemple :
http://zone.spip.org/trac/spip-zone...
c’est la zone, tandis que
http://trac.rezo.net/trac/spip/browser
c’est le core.

De plus, à certains moments de l’histoire de SPIP, les adresses et serveurs changent, mais les anciennes versions restent : attention à être bien dans une zone « active ». C’est un peu une devinette, mais les dates de changement des derniers commits permettent de savoir si c’est une zone vivante ou une vieille chaussette qui trainent. A l’heure actuelle, il n’est pas exclu que seules des zones actives soient en ligne, mais je n’y mettrais pas ma souris au feu.

-  Ensuite, dans le noyau de SPIP, il y a plusieurs branches de développement correspondant à différentes versions. La page http://trac.rezo.net/trac/spip/browser donne ainsi accès à
-  « spip » (actuellement la version 2.2, soit la plus récente)
-  « branches » (les versions anciennes, encore maintenues, de 1.8 à 2.1)

Donc là encore, attention : quand on tombe par google sur http://trac.rezo.net/trac/spip/brow..., il ne s’agit pas d’un fichier actuel, mais de la version actuelle d’une version de SPIP qui ne sortira que dans plusieurs mois, ou peut être pas...

<blockquote class="spip">

Suggestions pour améliorer ça

Actuellement, il n’y a pas de repère visuels, il faut lire et décrypter l’adresse pour savoir à quelle sorte de zone SVN appartient la page affichée. Ce point gagnerait à être amélioré.
Il serait utile de manifester de manière immédiate et non ambigüe la nature de la zone SVN de la page affichée. Par exemple par un surtitre ou un graphisme ou un logo ou un bandeau haut ou bas ou gauche ou droite.
Pour info, la page http://trac.edgewall.org/wiki/TracI... indique comment changer le look en modifiant les templates Genshi (templating engine écrit en python) .

</blockquote>

SVN : pour accéder à tout ça

Il y a quelques docs dont la lecture sera utile voire nécessaire comme préalables :
-  http://zone.spip.org/trac/spip-zone/wiki/CommentUtiliserSvn
-  http://zone.spip.org/trac/spip-zone/wiki/CharteDeFonctionnement

On a référencé plus haut les adresses des zones SVN par leur adresse http. On peut ainsi leur rendre visite avec un simple browser. Mais pour travailler avec, pour bénéficier du SVN, il faut un compte avec un code d’accés à la zone, un client SVN et utiliser les adresses SVN.

-  Pour ouvrir un compte il faut s’inscrire à la liste de discussion associée à la zone, et demander à bénéficier d’un accés. Il faut avoir préallablement lu la charte
de développement évoquée ci dessus, et compris l’esprit dans lequel est développé SPIP et proposé la zone. C’est Gilles qui délivre généralement les comptes et mots de passes associés.

-  Les clients svn sont divers mais sous MSWindows, il y en a surtout un : tortoisesvn, à télécharger et installer sur sa machine. ça intègre de nouvelles options au menu contextuel de l’explorateur (sur clic droitr dans un dossier)

-  Les adresses svn se déduisent des adresses http en remplaçant http:// par svn ://
(sauf exception ? à confirmer)

Hum, exception confirmée ! car ça peut bouger sur le zone...

Par exemple, pour
http://zone.spip.org/trac/spip-zone/browser/tags/abomailmans_spip2
svn://zone.spip.org/spip-zone/tags/abomailmans_spip2

En juin 2010, l’équivalence de la zone svn / http (ROOT) sera
SVN : svn://zone.spip.org/spip-zone/
HTTP : http://zone.spip.org/trac/spip-zone/browser/

Tout commit sur la zone se traduit par l’envoi de mails de notifications automatiques, reçus par tous les développeurs et utilisateurs intéressés, ce qui leur permet de suivre le développement de SPIP et des plugins.
voir. Cette liste bénéficie d’une interface newsgroup sur gmane

Pour tester SVN il y a un répertoire bac à sable : svn ://zone.spip.org/test
C’est là qu’il faut tester SVN car c’est un « repository » à part, pour lequel il n’y a pas génération de notification mail (tant qu’à faire, autant ne pas polluer les listes avec des tests).

<blockquote class="spip">

Il y a aussi des VDOs pédagogiques que Gilles est en train de documenter :
-  Création d’un nouveau projet, ajout au dépôt
-  Ajout, modification, et suppression de fichiers/répertoires sous SVN
-  Mise à jour de sa version de travail, fusion de modifications concurrentes
-  Conventions standards trunk / tags / branches

</blockquote>

L’interface tortoisesvn est agréable et intuitive, du moins en ce qui concerne les fonctions de base. Elle propose notamment une navigation à travers les dossiers du repository svn maître ou local, avec de riches menus contextuels qui permettent de choisir facilement ce qu’on veut. ça va d’autant mieux qu’on connait le vocabulaire svn, bien spécifique, et c’est là que c’est pas intuitif au départ.

Voici donc quelques repères, à confirmer et préciser encore :

-  la commande « checkout » permet de récupérer localement un répertoire de la zone
C’est par là qu’on commencera sans risque.

-  la commande « import » ressemble beaucoup à checkout. A vérifier donc ces 2 points.

-  la commande « commit » : permet d’envoyer sur la zone les modifications faites sur les versions locales des fichiers.

-  la commande « up » permet de faire une mise à jour de la version perso des documents, à partir de la version « maître »". Si on travaille en local avec une copie récupérée par SVN des fichiers le serveur de la zone, « up » ça veut dire télécharger depuis le site de la zone les nouveaux fichiers et les fichiers qui ont entre temps ayant été modifiés par d’autres développeurs . (C’est C’est donc éventuellement trompeur au début puisque ce n’est pas un upload mais un download ). .

-  la commande « export » permet de recopier ailleurs le contenu d’un répertoire svn local, mais sans les informations techniques de SVN

Difficulté :
-  les conflits de modification d’un même fichier

Les Règles à Respecter et les Erreurs à Eviter

La zone c’est pas (que) pour rigoler. C’est le support IN FINE de ce qui nous relie : le code. C’est donc précieux, on ne fait pas n’importe quoi avec. ça se traduit par des interdits et des règles de conduites à respecter quand on y touche.

Ce qui suit a parfois été formulé, de manière plus ou moins formelle, mais parfois ç’a n’a que « réagi », après une erreur justement.

Ya des trucs évidents et pas spécifiques au SVN :
-  pas casser le code des copains
-  documenter ce qu’on fait
-  faire « coopératif »

Ya des trucs spécifiques à SPIP :
-  « on code d’abord, on discute après » (pour donner du coeur à l’ouvrage et éviter les discussions stériles)
-  « gogogo » ! (version applicative du précédent précepte)

Enfin, ya des trucs très spécifiques à la zone :

-  Scrupuleusement documenter chaque commit au moins par un log qui décrit le code (ne pas dire « encore un commit sur formulaire.php », qui est totalement redondant, mais « ajout d’un paramètre $date à la fonction form_youpi pour indiquer la date de création » par exemple)

-  Eviter de faire des commits pour rien du tout ou de trop petites modifications (les rassembler si possible car ça encombre la liste d’information sur les commits et nuit au suivi). C’est pour cela d’ailleurs qu’il y a un espace de test à part.

-  Respecter l’historique !!! L’historique, c’est l’armoire en dentelle de l’arrière grand-mère et les actions russes du grand père : inestimable. L’historique du code, c’est la possibilité d’accéder à toutes les modifications qui ont mené à la version actuelle du code (pour l’instant, dans le passé seulement...).
ça peut être utile pour comprendre le code (en lisant les logs passés par exemple) ou pour restaurer une version antérieure (si on s’est trompé).

<blockquote class="spip">

Si Si par exemple on doit déplacer un répertoire, effacer ce répertoire puis le copier à sa destination, effacerait l’historique, ce qui doit être absolument évité. Pour obtenir le même résultat, mais en conservant l’historique, on utilisera la commande SVN dédiée au déplacement...

</blockquote>

Poser un TAG en SVN

Un tag (anciennement sabot) est un moyen de ’figer’ un plugin a un moment T de son développement. Si vos modifications risquent d’affecter les utilisateurs antérieurs ou pour ne pas risquer d’erreurs, posez un tag dans tags.

Voici comment poser un tag dans /tags en ligne de commande en restant sur le serveur de spip-zone, le dossier SVN "abomailmans" et son contenu sera recopié sous "abomailmans_spip2"


Voici comment poser un tag dans /tags en ligne de commande en restant sur le serveur de spip-zone, le dossier SVN "abomailmans" et son contenu sera recopié sous "abomailmans_spip2"


&lt;code >
 ordinateur:~ touti$ svn copy svn://zone.spip.org/spip-zone/_plugins_/abomailmans \
           svn://zone.spip.org/spip-zone/tags/abomailmans_spip2 \
          -m "creation tag pour abomailmans"
Authentication realm: <svn://zone.spip.org:3690> SPIP Zone
Password for 'touti':
Authentication realm: <svn://zone.spip.org:3690> SPIP Zone
Username: toutati@exemple.com
Password for 'toutati@exemple.com ':


Committed revision 38595.

Une fois que Committed revision n° apparait c’est bon, le tag est posé !

Retour à la version courante

Toutes les versions