Je note ici quelques conventions et informations importantes utilisées sur oder pour la gestion du code source.
Cet article a été rendu grandement désuet avec la venue de Subversion pour le contrôle des révisions. Notez seulement que le HEAD de développement est sous inso/trunk et la branche stable est sous inso/branches/stable.
Le code source est controlé par un référentiel CVS. L'utilisation elle-même du logiciel sort du but de cet article, sauf pour les cas particuliers et plus compliqués.
Il existe principalement deux branches de développement:
Tous les commits destinés à INSOSTABLE doivent d'abord être testés sur HEAD avant d'être intégrés (merged) sur INSOSTABLE[1], après un copieux "testage" sur oder, évidemment.
Voici la liste des tags disponibles sur HEAD ou INSO_STABLE. Cette liste doit être mise-à-jour à chaque fois qu'un nouveau tag est ajouté.
Il existe aussi des vendor branches. Ces branches de developpement sont celles qui nous servent à suivre le développement de Drupal et d'autre sources parentes au projet. La branche de Drupal est nommée DRUPAL_MAIN. Voici la liste des tags disponibles sur cette branche et leur signification:
Pour mettre à jour ces branches, utilisez la commande cvs import:
cvs -d /home/inso/cvs import -m "Import of Project module from last night's CVS" drupal/contrib/project DRUPALMAIN DRUPALCVS_20030402
Cette commande doit être utilisée dans le répertoire contenant le code source à importer.
--
[1] Pour faire un merge de HEAD à INSO_STABLE utilisez la commande: cvs update -j1.1 -j1.2 fichier.php. Ici, on fait un merge du commit 1.2 dans le fichier fichier.php.
Voici la procédure pour faire une nouvelle installation de L'Insomniaque sur un serveur donné.
Il est tout à fait possible que ceci ne fonctionne pas correctement, dans lequel cas il faudra immédiatement modifier cette documentation.
Pour faire un merge, ça nous prend un checkout de la branche stable:
$ svn co https://anarcat.ath.cx/svn/inso/branches/stable/
On vérifie la version du dernier merge:
$ cd stable ; svn log | less
r884 | anarcat | 2004-03-28 18:37:20 -0500 (Sun, 28 Mar 2004) | 1 line
merge rev 883 (install defaults) into stable
On vérifie le diff depuis cette version pour voir ce que l'on va "merger":
$ svn diff -r884:886 https://anarcat.ath.cx/svn/inso/trunk/
Le "886", c'est la version courante du repo, on l'obtient quand on fait un checkout:
A stable/core/.htaccess Checked out revision 886.
Si tout est beau, on fait le merge:
$ svn merge -r884:886 https://anarcat.ath.cx/svn/inso/trunk/ U contrib/modules/wiki2xhtml/class.wiki2xhtml.php U contrib/modules/extrafilters/extrafilters.module $ svn status M contrib/modules/wiki2xhtml/class.wiki2xhtml.php M contrib/modules/extrafilters/extrafilters.module
On commit les changements sur la branche stable:
$ svn commit -m 'merge rev 884-886 (filter fixes) into stable' Sending contrib/modules/extrafilters/extrafilters.module Sending contrib/modules/wiki2xhtml/class.wiki2xhtml.php Transmitting file data .. Committed revision 887.
Il est important de mettre le numéro de version que l'on merge pour pouvoir faire les merges futurs plus facilement, jusqu'à ce que subversion supporte l'historique dans les merges.
--
[1] Drupal supporte d'autres DBs, mais c'est MySQL que nous utilisons
[2] ceci implique potentiellement d'avoir Subversion (SVN) d'installé.
[3] Pour faire un checkout sous SVN, on utilise une commande comme: "svn co FOO" où FOO est l'url où se trouve le "repo" du code source.
[4] si le système ne supporte pas les liens symboliques, examiner le fichier makesymlinks.sh et installer les bons fichiers à la bonne place. (Bonne chance)