Comment utiliser SubVersion
Subversion est le logiciel qui gère le dépôt du code source Gambas sur
http://sourceforge.net.
Un dépôt est exactement comme un système de fichiers, mais un système de fichiers qui garde
toutes les modifications.
Organisation du dépôt Gambas
Le dépôt Gambas est divisé en trois répertoires principaux :
/trunk
|
Ce répertoire contient les sources de la version en développement. Son but est de devenir la version principale suivante de Gambas (3.0).
|
/branches
|
Ce répertoire contient les sources de la version stable. Il y a un sous-répertoire pour chaque version stable. Leur cible est de devenir la version mineure suivante de la version stable (2.X).
On peut y trouver quelques autres développements relatifs à Gambas qui sont conçus en dehors de /trunk , et qui y seront intégrés dans le futur.
|
/tags
|
Ce répertoire contient les sources de chaque version publiée de Gambas. Il y a un sous-répertoire pour chaque version. Ce ne sont que des archives, elles peuvent être utilisées pour recréer un paquet d’une ancienne version.
|
Vous pouvez lire le contenu du dépôt sur le Web à cette adresse :
http://sourceforge.net/p/gambas/code
Compiler la version du dépôt Subversion
Vous devez, tout d’abord, télécharger le code source.
Tout le monde peut faire une copie du dépôt sur son disque dur en utilisant la commande suivante :
$ svn checkout http://svn.code.sf.net/p/gambas/code/gambas/trunk
Ou :
$ svn checkout http://svn.code.sf.net/p/gambas/code/gambas/branches/3.3
Pour la version stable.
Une fois que c’est fait, vous effectuez la compilation exactement de la même manière que lorsque vous compilez une archive source téléchargée sur un site web :
$ ./reconf-all
...
$ ./configure -C
...
$ make
...
$ sudo make install
...
Obtenir un accès en écriture au dépôt Gambas
Si vous voulez faire du véritable développement ou de la traduction pour Gambas, alors vous devez avoir un accès
en
écriture à ce dépôt.
Pour obtenir un accès en écriture au dépôt Subversion de Gambas, créez juste un compte utilisateur sur sourceforge.net, et demandez-moi d'accorder un accès en écriture à l'utilisateur que vous venez de créer.
Comment ça fonctionne?
Chaque fois que quelque choses change dans le dépôt, le
numéro de révision est incrémenté,
et un
journal de révision est attaché à ce dernier. Le journal de révision est édité par la
personne ayant fait la modification.
Tout est fait avec la commande
svn
.
-
svn checkout
fait une copie du dépôt sur votre disque dur, et ajoute beaucoup de répertoires cachés .svn
quelque part dedans pour suivre les changements.
-
svn commit
renvoie toutes les modifications au serveur, demande une révision du journal, et incrémente le numéro de révision. Chaque soumission a son propre numéro et journal de révision.
-
svn update
, met à jour votre copie locale du dépôt avec la dernière version.
Quelqu'un peut avoir modifié certaines choses entre le moment où vous avez
vérifié et le moment où vous avez
soumis (c.a.d. envoyé les modifications). Donc avant de faire un
svn commit
, vous devriez faire un
svn update
.
Ecrire un journal de révision
Quand vous soumettez, vous devez indiquer l'éditeur utilisé pour l'édition du journal de révision dans la variable d'environnement
$EDITOR
.
Par exemple :
$ EDITOR=gedit svn commit
Notez que vous ne pouvez pas modifier un journal de révision après avoir envoyé vos modifications. Soyez vigilant !
Format du journal de révision
Je voulais avoir une manière standard d'écrire les messages de soumission,
de telle sorte que le ChangeLog puisse être presque automatiquement généré.
Le format est le suivant :
-
Une section ChangeLog, entre '
[
' & ']
'
-
Une modification de ChangeLog : un '
*
', un espace, le mot 'BUG
', 'NEW
' ou 'OPT
', suivi de deux point, un espace, et le texte.
'
BUG
' est pour un problème résolu, '
NEW
' pour une nouvelle caractéristique, et '
OPT
' pour une optimisation.
Les emplacements sont le nom du composant en majuscule, ou l’un des suivants :
-
[INTERPRETER]
pour les changements dans l’interpréteur (gbx3).
-
[COMPILER]
pour les changements dans le compilateur (gbc3).
-
[ARCHIVER]
pour les changements dans l’archiveur (gba3).
-
[INFORMER]
pour les changements dans l’informateur (gbi3).
-
[DEVELOPMENT ENVIRONMENT]
pour les changements dans l’IDE (gambas3).
-
[CONFIGURATION]
pour les changements dans le processus de configuration automake/autoconf
-
[WIKI CGI SCRIPT]
pour les changements dans le script CGI du wiki.
-
[WEB SITE MAKER]
pour les changements dans le générateur du site web Gambas.
-
[EXAMPLES]
pour tout changement dans un exemple.
Toutes les lignes doivent être inférieures ou égales à 76 caractères.
Si une modification de ChangeLog prend plus d’une ligne, vous devez utiliser une indentation
de 2 espaces.
Les lignes vides sont ignorées.
Toutes les autres lignes n'iront pas dans le ChangeLog.
Exemples
J'ai fait cette chose, et elle n'ira pas dans le ChangeLog.
[GB.QT]
* BUG: J’ai réparé ce bug.
* NEW: J’ai fais cette très longue modification....
Et ça prend plus d’une ligne pour l’écrire.
Cela n’ira pas dans le changelog non plus.
[GB.SDL]
* BUG: Quel horrible bug!
[GB.GTK]
* NEW: J’ai finalement terminé le composant :-)
Veuillez s'il vous plait suivre ce schéma. ça serait
vraiment cool...
Liste de diffusion de soumission
Il y a une liste de diffusion qui récupère un mail chaque fois que quelqu'un (en général moi) envoie une nouvelle révision.
De cette manière vous savez toujours si vous avez la dernière révision sur votre disque dur ou pas.
Pour vous inscrire à cette liste de diffusion, allez à la
page de la liste de diffusion sur le site web.
Le nom de la liste de diffusion est
gambas-devel-svn
.
État de votre copie de dépôt
Pour obtenir l'état de votre copie de dépôt, lancer la commande
svn status
.
Chaque état est décrit par une ou plusieurs lettres :
-
?
est un fichier qui n'est pas géré par SubVersion.
-
M
est un fichier que vous avez modifié.
-
C
est un fichier en conflit.
-
G
est un fichier en conflit qui a été automatiquement résolu par la commande svn
.
-
A
est un fichier ou répertoire ajouté récemment.
-
D
est un fichier ou répertoire supprimé.
-
... etc.
Voir ci-dessus pour plus d'informations à propos des
conflits.
Avertissements
Aucun suivi automatique de structure de projet
Vous devez dire à Subversion si vous ajoutez, supprimez, renommez, ou déplacez un fichier. Vous le faites avec les commandes :
-
svn add
pour ajouter un fichier que vous avez déjà créé.
-
svn del
pour supprimer un fichier.
-
svn move
pour renommer ou déplacer un fichier.
Oublier d'utiliser svn add
est une erreur commune. Je sais de quoi je parle :-)
Les conflits
Quelqu'un a pu modifier un fichier dans le dépôt, pendant que vous modifiez le même fichier sur votre disque dur.
Ceci est un
conflit, et
svn
vous le dira quand vous lancerez
svn update
,
ou la commande
svn status
.
Chaque fois qu'il y a un conflit,
svn
essaie de le résoudre automatiquement, en fusionnant vos propres changements
avec les changements faits par les autres personnes.
Si la fusion a réussi, vous obtiendrez un fichier avec un caractère d'état 'G'.
Si la fusion n'a pas réussi, vous aurez un fichier avec un caractère d'état 'C'.
Alors vous devrez résoudre le conflit manuellement :
-
Vous devez éditer le fichier vous-même pour fusionner les changements.
svn
a modifié le fichier de telle sorte que vous voyez vos propres changements et les autres changements côte à côte.
-
Ou vous pouvez utiliser une des copies faite automatiquement par Subversion. Vous en obtenez une pour la dernière version, et une pour la version en cours de votre dépôt local. Leur nom est le nom du fichier original suivi par un point, la lettre 'r' et le numéro de révision. Remplacez juste le fichier original par la copie.
Une fois cela fait, vous direz à
svn
que le conflit est résolu en lançant la commande
svn resolved
sur le fichier en conflit.
Y-a-t’il des risques?
Normalement il n'y a pas de risque, comme toutes les choses sont archivées, et donc vous pouvez toujours
remonter le temps.
De plus, si vous travaillez sur un projet Gambas à l'intérieur du dépôt, l'environnement de développement peut s'accorder avec toute commande
svn
pour vous. Allez dans l'onglet
Versioning dans la boîte de dialogue des propriétés du projet, et vous trouverez des boutons qui vous permettent de mettre à jour le projet, de l'envoyer, et d'annuler vos modifications.
Si vous avez fait quelque chose de bizarre, vous pouvez utiliser la commande
svn revert
. Il remettra votre copie locale dans l'état de la dernière vérification ou mise à jour.