SVN est un gestionnaire de version gratuit populaire, notamment utilisé pour PHP.
j’ai récemment pris un hebergément mutualisé « pro » chez OVH avec SVN d’installé.
Tout cela est paramétrable via un accès SSH au serveur.
J’ai utilisé le tutoriel donné par OVH ( http://guides.ovh.com/SVNMutu ), mais il manque certaines informations.
Débutons notre configuration de SVN !
J’utilise Putty (comme un bon nombre d’entre vous), une fois connecté il faut créer au même niveau que le répertoire www un répertoire pour svn, appelez le svn par exemple : mkdir svn
Ensuite il faut créer le projet sous SVN :
svnadmin create svn/votre_projet
Si aucun message ne s’est affiché après cette commande c’est que tout va bien
Phase suivante : la création d’une clef publique, elle permettra d’éviter à chaque fois que vous vous connecter en SSH pour SVN que vous l’on demande votre login/mot de passe.
Pour cela j’ai utilisé Putty Key Generator ( http://the.earth.li/~sgtatham/putty/latest/x86/puttygen.exe ), il suffit lancer l’exe, de choisir la clef en SSH2-DSA (radio bouton en bas dans l’encadré « parameters » puis cliquer sur le bouton « generate », c’est rigolo pour générer votre clef il faut bouger la souris dans l’encadré gris, et hop une clef est générée !
Maintenant il faut la mettre sur votre hébergement pour cela il faut créer un répertoire .ssh au même niveau que svn et www puis créer un fichier authorized_keys2 pour y mettre la clef et quelques informations concernant votre hébergement :
mkdir .ssh
chmod 700 .ssh
vi .ssh/authorized_keys2
Dans ce fichier mettez les informations suivantes :
command="/usr/bin/svnserve --root=LE_CHEMIN_VU_ENSEMBLE_APRES --tunnel --tunnel-user=VOTRE_NOM_POUR_SVN",no-port-forwarding,no-agent-forwarding,no-X11-forwarding,no-pty
Il y a deux valeurs à adapter à votre situation : LE_CHEMIN_VU_ENSEMBLE_APRES et VOTRE_NOM_POUR_SVN.
Pour la valeur LE_CHEMIN_VU_ENSEMBLE_APRES placez-vous dans le répertoire svn (cd svn) puis tapez pwd cela va vous donner votre positionnement absolu, vous devriez avoir un truc du genre /homez.134/votre_login/svn (votre_login étant encore une valeur adapter à votre situation)
Pour la valeur VOTRE_NOM_POUR_SVN C’est le nom qui sera utilisé pour l’historique SVN.
Donc à la suite de
command="/usr/bin/svnserve --root=/homez.134/votre_login/svn --tunnel --tunnel-user=votre_login",no-port-forwarding,no-agent-forwarding,no-X11-forwarding,no-pty
ajouter un espace et mettez la clef publique complète.
Au final vous aurez un truc qui ressemble à ça :
command="/usr/bin/svnserve --root=/homez.134/votre_login/svn --tunnel --tunnel-user=votre_login",no-port-forwarding,no-agent-forwarding,no-X11-forwarding,no-pty ssh-dss AAAAB3NzaC1kc3MAAACBAIyzLIwTjIhLwobrnVqu4QiBAEfb5jZMZSTtVDuc0TwqzUiLvkPMdapjIqNDeQnLA/EOxrf8ozTx/8G4JtJ0Z1dFCHZhKonXd0Hq4PBwnNeabSn9xq6xNRORf9nk81GTvuFDoYbwg0o3b4Th+q5cnlOChvXJljAx2CbEiUXc09HrAAAAFQDIrg+UpWLME5WPvgQayCPAoQCHbwAAAIAhYJConDqXn5az7s4bzXDvwAzCQc3loTsgLGF0Ww8+kaUO0+ugwA1DmN2ZlvGznwX+DnJv+TgjBY39Yc0DlMFIY+EGmkEgvHdE5xdLtzWWBUjYyjhvG7F5Btrr9o9DdL7v47y/rignyr1JG3pcdsoU5xrMIHkrvJgqEJRCtrSJxAAAAIA5J5hgrHncq8RGVf2LA5ZsFtDjWyaEaa7CAZiK8DI1WMoVRxdPHc+qYw2pi5/rFbgKWnwD/TFpBxo8PoHaTSAsn00FgNEi9nSyM6iVNOuRlTEiIklXvRAsFF4DV4ljhBJYBWx6dOHqt7Y/4G241RWZgl88btWSCpSir6uw5u+QXQ== dsa-key-20100106
Votre clef est fin prête, vous pouvez sauvegarder le fichier (échappement puis :wq!).
Par contre laissez ouvert votre fenêtre putty key generator pour la suite.
NOTE : je reviendrais sur ce passage car je bloque sur un truc, je ne comprends pas l’utilité de la clef si j’ai toujours la fenêtre qui me demande mes accès… la clef devrait justement faire en sorte que vous n’ayez plus la fenêtre.
Maintenant télécharger un bon client SVN, tortoise étant le mieux, je ne peux que vous le recommander ( http://tortoisesvn.net/download ).
Une fois installer créer un répertoire puis faites un clique droit dessus, puis choisissez « SVN checkout », dans URL of repository j’ai :
svn+ssh://LOGINSSH@ftp.votredomaine.fr/PWD_ABSOLU/votre_projet/
LOGINSSH est à remplacer par le login que vous utiliser pour l’accès à SSH (ou ftp)
PWD_ABSOLU est à remplacer par le résultat que vous aviez eu plus haut, un truc qui ressemble à /homez.134/votre_login/svn
et voilà, c’est prêt !
Dans mon prochain article j’expliquerais les commandes HOOK, bien pratique pour pousser automatiquement les fichiers vers www/ dès que vous faite un commit par exemple.
Et au fait, bonne année 2010 !