Utiliser SVN
Le code de développement d'Apertium est conservé dans SVN. Ce qui suit est une cheatsheet(?) de base pour utiliser SVN. Le dépôt SVN est arrangé en quatre sous-répertoires:
trunk
— il contient l'arbre de développement principal,tags
— il contient les versions archivées des releases,branches
— il contient les branches sur lesquelles des gens travaillent pour chacun des modules danstrunk
,incubator
— il contient les modules en cours de développement (surtout des paires de langues) qui n'ont pas encore été mises danstrunk
Si vous êtes nouveau sur Apertium et SVN, vous voulez probablement juste regarder le sous-répertoire trunk
. Pour examiner son arborescence, vous pouvez aller sur : données brutes ou ViewSVN
Contents
SVN, c'est quoi ?
SVN est un système de contrôle de version. Les utilisateurs de Linux et Mac devraient l'avoir déjà installé (sinon, il sera disponible à travers votre gestionnaire de paquets), les utilisateurs de Windows devraient utiliser tortoisesvn (voir Utiliser SVN avec TortoiseSVN).
Tout le monde
Si vous avez une bande passante ou un espace disque limité, veuillez voir Installation minimale depuis SVN.
Pour récupérer toute l'arborescence :
$ svn co https://apertium.svn.sourceforge.net/svnroot/apertium
Note: L'arborescence totale dépasse les 4 Goctets, Si vous disposez d'une connexion lente ou avez des limitations de transfert, probablement il vaudra mieux récupérer seulement les modules dont vous avez besoin — pour une installation de base, les modules "lttoolbox" et "apertium" suffisent.
Pour récupérer un module :
$ svn co https://apertium.svn.sourceforge.net/svnroot/apertium/trunk/<nom_module>
Donc, par exemple, pour récupérer la paire basque-espagnol, tapez
$ svn co https://apertium.svn.sourceforge.net/svnroot/apertium/trunk/apertium-eu-es
Pour faire une mise à jour :
$ svn update
Développeurs
Pour "commiter" vos modifications (les envoyer au serveur) :
$ svn commit
Note: N'oubliez pas d'écrire un beau message de log !
Pour rajouter un fichier ou un répertoire à un module existant :
$ svn add <nom du fichier ou répertoire>
Pour supprimer un fichier ou un répertoire du serveur :
$ svn delete <nom du fichier ou répertoire>
Note : Cela supprime également le fichier localement !
Pour importer un nouveau module dans SVN :
$ svn mkdir https://apertium.svn.sourceforge.net/svnroot/apertium/<nom_module>
Puis cd
dans le répertoire que vous voulez importer.
$ svn import . https://apertium.svn.sourceforge.net/svnroot/apertium/<nom_module>
Raccourcis
Si vous utilisez SVN régulièrement, ça pourrait valoir la peine d'apprendre quelques raccourcis, pour gagner du temps.
À la place de svn commit vous pouvez utiliser :
$ svn ci
À la place de svn delete, vous pouvez utiliser
$ svn rm
Si vous ne voulez pas attendre que votre éditeur de texte s'ouvre lorsque vous "commitez", vous pouvez spécifier le message de commit en ligne de commande :
$ svn ci -m "Mon message de commité"
Il vaut mieux noter que si vous ne comprenez pas totalement le shell, il vaudra probablement mieux rester avec l'éditeur de texte.
Commiter seulement une partie de vos changements
Si vous avez changé de nombreux fichiers, et ne voulez pas commiter tout d'un coup, vous pouvez donner une liste de noms de fichiers à svn commit, et seulement ces fichiers seront commité :
$ svn ci fichier1 fichier2
Quelquefois, il vaut mieux commiter de cette manière; pour mettre les modifications en lien entre elles dans le même commit, et garder séparément les modifications sans rapport. Ça permet plus facilement de défaire vos changements plus tard, si on s'aperçoit qu'il y a un problème.
Défaire les modifications locales
Si vous avez fait des modifications que vous ne voulez pas conserver - et que vous n'avez pas commité ces modifications - vous pouvez utiliser :
svn revert <nom des fichiers ou répertoire>
Cela remettra les fichiers à la dernière version que vous avez récupéré sur le serveur.
Défaire tout ou partie d'un commit
D'abord travaillez sur la révision que vous voulez remettre(?) (probablement la révision que vous venez de commiter moins 1), cd
répertoire apertium .
mv <nom_module> <nom_module>.new svn co -r <révision> https://apertium.svn.sourceforge.net/svnroot/apertium/<nom_module>
Maintenant copiez tous les fichiers que vous voulez remettre à l'ancienne révision (<nom_module>
) dans la nouvelle révision (<nom_module>.new
), puis faire :
rm -rf <nom_module> mv <nom_module>.new <nom_module> cd <nom_module> svn commit
Garder la trace des nouvelles modifications
Vous pouvez garder la trace des nouveaux commit réalisés au moyen de
- email — en vous inscrivant sur https://lists.sourceforge.net/lists/listinfo/apertium-devel (vous pourrez rajouter quelques filtres, sinon votre boite aux lettres sera rapidement inondée)
- microblog — en suivant http://identi.ca/apertium
- IRC — en joignant #apertium sur freenode.net (ici les messages viennent de http://cia.vc/stats/project/apertium)
- RSS feed — en ajoutant https://sourceforge.net/export/rss2_keepsake.php?group_id=143781 à votre lecteur RSS favori.
Maintenance
Erreurs "502 Bad Gateway"
Lors de l'exécution de certaines opérations (comme SVN COPY ou branchement/marquage, en utilisant SVN COPY), vous pouvez obtenir une erreur 502 Bad Gateway
si vous avez utilisé HTTP plutôt que HTTPS pour vérifier votre copie de travail. Repositionnez votre copie de travail sur HTTPS et réessayez. (Voir ce ticket sur Sourceforge pour plus d'information. Voir cet article pour une explication plus détaillée sur la raison du problème.)
$ svn switch --relocate http://apertium.svn.sourceforge.net/ https://apertium.svn.sourceforge.net/
"Host not found" lors de l'utilisation d'un proxy Squid
Si vous obtenez
svn: OPTIONS of 'http://apertium.svn.sourceforge.net/svnroot/apertium/trunk/lttoolbox': Could not resolve hostname `apertium.svn.sourceforge.net': Host not found (http://apertium.svn.sourceforge.net)
et que vous utilisez un proxy Squid, ajoutez
[global] http-proxy-host=proxyhost http-proxy-port=3128
au fichier ~/.subversion/servers