Utiliser SVN

From Apertium
Revision as of 21:46, 4 July 2014 by Bech (talk | contribs) (Correction accès svn)
Jump to navigation Jump to search

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 dans trunk,
  • incubator — il contient les modules en cours de développement (surtout des paires de langues) qui n'ont pas encore été mises dans trunk

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

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://svn.code.sf.net/p/apertium/svn/trunk/<nom_module>

Donc, par exemple, pour récupérer la paire basque-espagnol, tapez

$ svn co https://svn.code.sf.net/p/apertium/svn/trunk/apertium-eu-es

Pour faire une mise à jour :

$ svn update

Développeurs

Pour enregistrer 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://svn.code.sf.net/p/apertium/svn/<nom_module>

Puis cd dans le répertoire que vous voulez importer.

$ svn import . https://svn.code.sf.net/p/apertium/svn/<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 enregistrez, vous pouvez spécifier le message d'enregistrement en ligne de commande :

$ svn ci -m "Mon message d'enregistrement"

Il vaut mieux noter que si vous ne comprenez pas totalement le shell, il vaudra probablement mieux rester avec l'éditeur de texte.

Enregistrer seulement une partie de vos changements

Si vous avez changé de nombreux fichiers, et ne voulez pas enregistrer tout d'un coup, vous pouvez donner une liste de noms de fichiers à svn commit, et seulement ces fichiers seront enregistrés :

$ svn ci fichier1 fichier2

Quelquefois, il vaut mieux enregistrer de cette manière; pour mettre les modifications en lien entre elles dans le même enregistrement, 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 enregistré 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 enregistrement

D'abord travaillez sur la révision que vous voulez restaurer (probablement la révision que vous venez d'enregistrer moins 1), cd répertoire apertium .

mv <nom_module> <nom_module>.new
svn co -r <révision> https://svn.code.sf.net/p/apertium/svn/<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 enregistrements réalisés au moyen de

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