Archive pour le mot-clef ‘svn’

[Dev collaboratif] Les péripéties de mon premier checkout

Jeudi 23 septembre 2010

Auparavant, j’ai toujours été habituée à travailler seule dans mon coin sur un script ou une modification. De ce fait, je n’avais jamais touché à SVN, ni à Git jusqu’à maintenant.

Or, étant depuis mi-septembre dans l’équipe de phpBB-France, un des projets m’intéressait et j’ai donc appliqué pour pouvoir travailler du côté du template d’EzBB, le fork de phpBB2.

Mais avant de pouvoir modifier un fichier, il fallait d’abord installer un client SVN sur sa machine et faire un premier checkout pour y importer les fichiers depuis le dépôt.

Confusions et problèmes niaiseux

Mais lorsque je me suis mise à me documenter sur SVN, le post destiné à l’équipe ne parlait que de TortoiseSVN, un client pour Windows. Or, étant sous Linux, je ne pouvais pas utiliser cet utilitaire, et j’avais donc demandé des suggestions d’utilitaires pour Linux. Une première réponse parlait de RabbitVCS et une autre, celle de l’auteur du sujet, parlait de lignes de commandes et de RapidSVN et d’un script pour Nautilus. J’ai d’abord suivi la première réponse (et du coup, découvert un problème avec le paquet global et j’ai d’ailleurs ouvert un ticket sur Launchpad) puis j’ai suivi la deuxième réponse.

J’installe donc subversion, en me faisant un lien symbolique depuis /var/svn vers /home/caroline/svn afin de ne pas perdre ma copie en cas de crash de la partition contenant le système, mon /home étant dans une partition séparée.

Une fois tout ça installé, je me suis mise à chercher de la documentation, mais celles que je trouvais pour Subversion parlaient de créer et configurer un dépôt (avec svnadmin). Étant débutante, je pensais que c’était donc un prérequis pour importer sa copie de travail, ce qui fait que j’ai créé mon dépôt, mais lorsque j’ai tenté un checkout, ça me retournait une erreur :

Erreur pendant l'exécution de l'action : Le serveur a envoyé une valeur inattendue (405 Method Not Allowed) en réponse à la requête MKCOL pour '/repos/!svn/wrk/8be0655e-8b54-46c5-90cd-d3bfa706ffa1/trunk/db'

C’est là que Mathedit m’a dit de le faire dans un dossier vide. Par la suite, après avoir effacé les fichiers créés par la commande svnadmin create, je retente avec RapidSVN, mais ça tournait dans le beurre : Rien ne se passait ! En lui rapportant ça, il m’a alors demandé de tester avec la ligne de commande à la place, en utilisant ces lignes :

cd /home/caroline/svn/ezbb
svn checkout https://{ADRESSE_DEPOT}/ .

en me spécifiant de mettre le point à la fin. Notez que j’ai censuré l’adresse du dépôt pour ne pas l’ébruiter en dehors des parties privées.

Je retente donc une nouvelle fois avec la commande, ce qui me donne ça comme résultat :

caroline@caroline-desktop:~/svn/ezbb$ svn checkout https://{ADRESSE_DEPOT}/ .
Mot de passe du porte-clé GNOME '(null)' :
svn: OPTIONS de 'https://{ADRESSE_DEPOT}': Échec à l'autorisation : Could not authenticate to server: rejected Basic challenge (https://{ADRESSE_SERVEUR)
caroline@caroline-desktop:~/svn/ezbb$

Mais tout de suite, je sentais que le fait qu’on me demandait le mot de passe du porte-clé GNOME y était pour quelquechose. Après deux autres tentatives, j’ai fini par faire une recherche, ce qui me conduit à ce sujet, portant sur le même problème : Mot de passe du porte-clés GNOME ‘default’ => RESOLU

Voyant que son problème était résolu par la commande qui a été donnée :

rm ~/.gnome2/keyrings/default.keyring

J’essaie donc avec cette commande, après avoir vérifié le nom du fichier en question, qui était login.keyring, puis je réessaie un checkout à nouveau… qui a enfin réussi ! Le retrait du fichier .keyring a permis la réinitialisation du mot de passe du porte-clés, ce qui fait que j’ai pu entrer mes logins pour me connecter au dépôt, et définir un nouveau mot de passe pour le trousseau !

En résumé

Si vous débutez en développement collaboratif et que vous êtes sous Linux, vous devez savoir ce qui suit :

  1. En installant Subversion, ne faites que créer un lien symbolique entre /var/svn et /home/votrenom/svn pour éviter les désagrément liés aux permissions, et aussi pour protéger votre répertoire contre un éventuel crash (si vous avez mis /home dans une partition séparée).
  2. Pour une utilisation client, vous ne devez pas créer de dépôt et vous n’avez donc pas besoin d’utiliser svnadmin create ni de svnserve. Il faut que votre premier checkout soit fait dans un répertoire vide !
  3. En cas de demande d’entrer un mot de passe du porte-clés GNOME, effacez simplement le fichier ~/.gnome2/keyrings/nomdufichier.keyring pour réinitialiser le mot de passe.