Difference between revisions of "SVN/Fr"

From TuxFamilyFAQ
Jump to navigationJump to search
 
(37 intermediate revisions by 13 users not shown)
Line 1: Line 1:
<big> Dépot SVN </big>
+
<big> Dépôt SVN </big>
  
 
{{Template:Languages}}
 
{{Template:Languages}}
  
 
= Description =
 
= Description =
 
+
Subversion est le successeur de [[CVS/Fr|CVS]]. C'est un gestionnaire de code source comme l'est [[GIT/Fr|GIT]] ; vous en trouverez une petite présentation ici : https://forge.ipsl.jussieu.fr/docipsl/wiki
Subversion est le successeur de [[CVS/Fr|CVS]]
 
petite présentation ici : https://forge.ipsl.jussieu.fr/docipsl/wiki
 
  
 
= Dépendances =
 
= Dépendances =
 
 
*Un [[User/Fr|compte utilisateur]]
 
*Un [[User/Fr|compte utilisateur]]
 
*Un [[Group/Fr|projet validé par l'équipe de modération]]
 
*Un [[Group/Fr|projet validé par l'équipe de modération]]
  
 
= Création =
 
= Création =
 +
*Rendez-vous sur le panel
 +
*Cliquez sur le lien du projet auquel vous voulez ajouter un dépôt SVN
 +
*Choisissez le nom de votre dépôt
 +
*Validez
  
*Rendez vous sur le panel
+
== Conseils de création ==  
*cliquez sur le lien du projet auquel vous voulez ajouter un dépot SVN
+
*Ne choisissez pas un nom trop générique
*choisissez le nom de votre dépot
 
*validez
 
 
 
== conseils de création ==  
 
 
 
*ne choisissez pas un nom trop générique
 
 
*Pensez à remplir la description pour éviter les soucis avec les modos ;)
 
*Pensez à remplir la description pour éviter les soucis avec les modos ;)
  
 
= Modération =
 
= Modération =
 
+
Cet objet est soumis à la modération voir : [[Moderation/Fr|ici]].
Cet objet est soumis à la modération voir : [[Moderation/Fr|ici]]
 
  
 
= Comment l'administrer (panel) =
 
= Comment l'administrer (panel) =
 
+
Sur le panel vous pouvez décider si ce dépôt est public ou non.<br />
Sur le panel vous pouvez décider si ce repository est public ou non.
+
En cochant ''oui'' vous permettez un login anonymous en lecture seule sur le dépôt et en permettez la consultation par le [http://svn.tuxfamily.org/ svnweb].
 
 
En cochant oui vous permettez un login anonymous en lecture seule sur le repository et en permettez le visionnage par le svnweb
 
  
 
== Configuration ==
 
== Configuration ==
 
+
== Comment gérer les droits de mon groupe ==
== Comment gerer les droits de mon groupe ==
+
Cet objet peut être partagé avec votre groupe en utilisant les [[Acl/Fr|ACL]].
 
 
Cet objet peut être partagé avec votre groupe en utilisant les [[Acl/Fr|ACL]]
 
  
 
== Comment le détruire ==
 
== Comment le détruire ==
 
+
*Logguez-vous sur le panel
*logguez vous sur le panel
+
*Cliquez sur le groupe de votre projet
*cliquez sur le groupe de votre projet
+
*Cliquez sur votre depôt SVN
*cliquez sur votre depôt SVN
+
*Cliquez sur détruire
*cliquez sur détruire
 
  
 
= Comment l'utiliser =
 
= Comment l'utiliser =
 
+
Bon, vous avez pris un hébergement chez Tuxfamily, c'est bien. Vous avez opté pour un dépôt subversion, c'est mieux. Nous allons vous expliquer comment utiliser tout cela.
Bon, vous avez pris un hébergement chez Tuxfamily, c'est bien. Vous avez opté pour un repository subversion, c'est mieux. Nous allons vous expliquer comment utiliser tout cela.
 
  
 
==Utilisation basique==
 
==Utilisation basique==
  
 
===Check out===
 
===Check out===
 
+
Nous partons du principe que vous souhaitez faire ici une utilisation basique de Subversion. Commencez par faire un checkout de votre dépôt :
Nous partons du principe que vous souhaitez faire ici une utilisation basique de Subversion. Commencez par faire un checkout de votre repository
 
 
  svn co svn+ssh://VOTREUSER@svn.tuxfamily.org/svnroot/VOTREPROJET/NOMDUREPOSITORY
 
  svn co svn+ssh://VOTREUSER@svn.tuxfamily.org/svnroot/VOTREPROJET/NOMDUREPOSITORY
 
   
 
   
(remplacez bien sur VOTREUSER par votre nom d'utilisateur sur le panel, VOTREPROJET par le nom du projet auquel appartient le repository de nom NOMDUREPOSITORY).  
+
Remplacez bien sûr VOTREUSER par votre nom d'utilisateur sur le panel, VOTREPROJET par le nom du projet auquel appartient le dépôt de nom NOMDUREPOSITORY.
 +
 
 +
Vous pouvez obtenir un message du genre "''The authenticity of host can't be established''", vous demandant si vous voulez poursuivre. Confirmez par "yes".
  
 
'''Attention''', votre mot de passe risque de vous être demandé plusieurs fois, jusqu'à 3 fois. Cela n'est pas un bug, c'est dû à svn qui utilise plusieurs connexions, il vous faudra donc rentrer votre mot de passe autant de fois qu'il vous sera demandé, ou utiliser une clef ssh (voir plus bas).
 
'''Attention''', votre mot de passe risque de vous être demandé plusieurs fois, jusqu'à 3 fois. Cela n'est pas un bug, c'est dû à svn qui utilise plusieurs connexions, il vous faudra donc rentrer votre mot de passe autant de fois qu'il vous sera demandé, ou utiliser une clef ssh (voir plus bas).
  
Pour tester votre accès au référentiel subversion, vous pouvez utiliser quelque chose dans ce goût là :
+
Pour tester votre accès au référentiel subversion, vous pouvez utiliser quelque chose dans ce goût-là :
 
  [soda@evira:/tmp/subversion] svn co svn+ssh://sod@svn.tuxfamily.org/svnroot/vhffs4/vhffs repertoire
 
  [soda@evira:/tmp/subversion] svn co svn+ssh://sod@svn.tuxfamily.org/svnroot/vhffs4/vhffs repertoire
 
  Révision 0 extraite.
 
  Révision 0 extraite.
 
  [soda@evira:/tmp/subversion] $
 
  [soda@evira:/tmp/subversion] $
  
Alléluïa, tout fonctionne. Le répertoire ##repertoire## a été créé (ajouté à la fin de la commande), il est bien sûr vide puisque votre référentiel ne contient aucun fichier.
+
Alléluia, tout fonctionne. Le répertoire "repertoire" a été créé (ajouté à la fin de la commande), il est bien sûr vide puisque votre référentiel ne contient aucun fichier.
  
 
=== Création du layout de base ===
 
=== Création du layout de base ===
 
 
Bien que ce ne soit pas une obligation, il est conseillé d'organiser votre référentiel comme suit :
 
Bien que ce ne soit pas une obligation, il est conseillé d'organiser votre référentiel comme suit :
  
Line 80: Line 68:
 
  |_ trunk
 
  |_ trunk
  
Cela vous facilitera la vie lors de l'évolution de votre projet : le répertoire ''trunk'' contiendra toujours la dernière version en cours de développement, ''tags'' servira uniquement à noter des versions (il est conseillé de créer un tags à chaque release afin que les utilisateurs puissent obtenir facilement le code correspondant à une version donnée) tandis que branches permettra d'ajouter des fonctionnalités encore trop instables pour être présentes dans le trunk.
+
Cela vous facilitera la vie lors de l'évolution de votre projet : le répertoire ''trunk'' contiendra toujours la dernière version en cours de développement, ''tags'' servira uniquement à noter des versions (il est conseillé de créer un ''tags'' à chaque version afin que les utilisateurs puissent obtenir facilement le code correspondant à une version donnée) tandis que ''branches'' permettra d'ajouter des fonctionnalités encore trop instables pour être présentes dans le ''trunk''.
 +
 
 +
Voyez la [http://svnbook.red-bean.com/nightly/en/svn.reposadmin.planning.html#svn.reposadmin.projects.chooselayout page en anglais du svn book] pour plus de détails.
  
 
=== Import initial ===
 
=== Import initial ===
 
Si vous n'avez pas encore de fichiers à placer sous subversion, vous pouvez créer le layout simplement :
 
Si vous n'avez pas encore de fichiers à placer sous subversion, vous pouvez créer le layout simplement :
 
 
  cd /tmp
 
  cd /tmp
 
  mkdir monprojet
 
  mkdir monprojet
  cd monprojet && mkdir trunk && mkdir branches && mkdir tags
+
  cd monprojet && mkdir trunk branches tags
 
  svn import . svn+ssh://UTILISATEUR@svn.tuxfamily.org/svnroot/GROUPE/REPOSITORY -m "Import initial ou tout autre message qui vous chante"
 
  svn import . svn+ssh://UTILISATEUR@svn.tuxfamily.org/svnroot/GROUPE/REPOSITORY -m "Import initial ou tout autre message qui vous chante"
  
Line 94: Line 83:
 
Si vous avez déjà des fichiers composant le projet, il vous suffit de procéder de la même façon mais de ne faire l'import qu'après avoir copié vos fichiers dans le répertoire trunk.
 
Si vous avez déjà des fichiers composant le projet, il vous suffit de procéder de la même façon mais de ne faire l'import qu'après avoir copié vos fichiers dans le répertoire trunk.
  
Après cet import, il vous faut faire un checkout du référentiel  
+
Après cet import, il vous faut faire un checkout du référentiel :
 
  svn co svn+ssh://USER@svn.tuxfamily.org/svnroot/GROUPE/REPOSITORY unrepertoire
 
  svn co svn+ssh://USER@svn.tuxfamily.org/svnroot/GROUPE/REPOSITORY unrepertoire
unrepertoire étant le répertoire dans lequel vous allez travailler. Si tous les fichiers sont bien présent, vous pouvez supprimer le répertoire à partir duquel vous avez fait l'import et passer à la suite de ce document.
+
"unrepertoire" étant le répertoire dans lequel vous allez travailler. Si tous les fichiers sont bien présents, vous pouvez supprimer le répertoire à partir duquel vous avez fait l'import et passer à la suite de ce document.
  
 
=== Ajout/suppression de fichiers, mise à jour du repository ===
 
=== Ajout/suppression de fichiers, mise à jour du repository ===
 
 
==== Ajout de fichier ====
 
==== Ajout de fichier ====
 
 
Entrons donc dans notre répertoire
 
Entrons donc dans notre répertoire
 
  cd repertoire
 
  cd repertoire
  
Et créons un fichier appelé ##file##
+
Et créons un fichier appelé "file"
 
  touch file
 
  touch file
  
Ensuite, pour l'ajouter au repository, tapez simplement
+
Ensuite, pour l'ajouter au dépôt, tapez simplement
 
  svn add file
 
  svn add file
  
Line 114: Line 101:
 
  svn ci
 
  svn ci
 
plus classe :
 
plus classe :
svn ci --message "message de commit qui apparaîtra dans le changelog"  
+
svn ci --message "message de commit qui apparaîtra dans le changelog"  
  
 
Pour les répertoires, nous aurions procédé de la même façon
 
Pour les répertoires, nous aurions procédé de la même façon
Line 122: Line 109:
  
 
====Suppression de fichier ====
 
====Suppression de fichier ====
Pour supprimer un fichier présent dans le repository, tapez simplement
+
Pour supprimer un fichier présent dans le dépôt, tapez simplement
 
  svn rm file
 
  svn rm file
 
puis envoyez vos modifications sur le serveur
 
puis envoyez vos modifications sur le serveur
 
  svn ci
 
  svn ci
  
 
+
==== Mise à jour du dépôt ====
==== Mise à jour du repository ====
+
Quand on travaille en groupe, il peut être utile de pouvoir mettre à jour son dépôt subversion. Pour cela, il suffit d'invoquer la commande suivante à la base du dépôt
Quand on travaille en groupe, il peut être utile de pouvoir mettre à jour son dépot subversion. Pour cela, il suffit d'invoquer la commande suivante à la base du repository
 
 
  svn up
 
  svn up
 
  
 
== Utilisation de Subversion en anonymous ==
 
== Utilisation de Subversion en anonymous ==
  
Il est possible d'utiliser Subversion en anonyme. Cependant, vous n'aurez pas le droit de modifier le repository (suppression ou modification de fichiers). Pour faire un 'checkout' du repository, invoquez la commande suivante :
+
Il est possible d'utiliser Subversion en anonyme. Cependant, vous n'aurez pas le droit de modifier le dépôt (suppression ou modification de fichiers). Pour faire un 'checkout' du dépôt, invoquez la commande suivante :
 
  svn co svn://svn.tuxfamily.org/svnroot/VOTREPROJET/NOMDUREPOSITORY
 
  svn co svn://svn.tuxfamily.org/svnroot/VOTREPROJET/NOMDUREPOSITORY
  
Il est également possible de mettre à jour le repository au fur et à mesure que les développeurs mettent à jour le code via un simple  
+
Il est également possible de mettre à jour le dépôt au fur et à mesure que les développeurs mettent à jour le code via un simple :
 
  svn up
 
  svn up
  
Attention cependant, le mode anonyme n'est disponible que si votre repository est mis en public (réglage par défaut)
+
Attention cependant, le mode anonyme n'est disponible que si votre dépôt est mis en public (réglage par défaut).
  
== Utilisation du Svnweb ==
+
== Utilisation de l'interface web ==
 +
Vous pouvez consulter les dépôts par le web à l'adresse suivante : http://svn.tuxfamily.org<br />
 +
Les URLs sont de la forme http://svn.tuxfamily.org/groupe/dépôt/ ( http://svn.tuxfamily.org/vhffs4/vhffs/ par exemple )
  
Vous pouvez consulter les repositories par le web à l'adresse suivante : http://svn.tuxfamily.org
+
Pour ceux qui préfèrent WebSVN, ils peuvent être comblés à l'adresse http://websvn.tuxfamily.org<br />
Les URLs sont de la forme http://svn.tuxfamily.org/svn_groupe_dépot/
+
Les dépôts sont présentés sous la forme groupe/dépôt.
 
 
Pour ceux qui préfèrent svnweb, ils peuvent être comblés à l'adresse http://svnweb.tuxfamily.org
 
Les dépôts sont présentés sous la forme groupe/dépot.
 
Vu que svnweb est heuuu... pas génial à coté de viewvc il n'est plus maintenu et voué à disparaitre. Il est encore présent car certains utilisent les flux RSS pour suivre les développements (comprendre que le jour ou cela sera intégré à VHFFS il disparaitra).
 
  
 
== Utilisation via CIA ==
 
== Utilisation via CIA ==
[http://cia.vc CIA] est un système de commits, visitez le site pour de plus amples informations le concernant. Pour ajouter le support de [http://cia.vc CIA] à votre repository TuxFamily, créez un compte utilisateur sur leur site. Puis, créez un projet, nommez-le comme bon vous semble, dans la partie configuration vous devriez voir un onglet "repository", allez dessus. Il vous faut alors cocher la case "Connect to a public Subversion repository", et remplir les champs qui apparaitront à vos yeux de la manière suivante :
+
[http://cia.vc CIA] est un système de commits, visitez le site pour de plus amples informations le concernant. Pour ajouter le support de [http://cia.vc CIA] à votre dépôt TuxFamily, créez un compte utilisateur sur leur site. Puis, créez un projet, nommez-le comme bon vous semble, dans la partie configuration vous devriez voir un onglet "repository", allez dessus. Il vous faut alors cocher la case "Connect to a public Subversion repository", et remplir les champs qui apparaitront à vos yeux de la manière suivante :
  
 
  Repository URL: svn://svn.tuxfamily.org/svnroot/votre_groupe/votre_repo
 
  Repository URL: svn://svn.tuxfamily.org/svnroot/votre_groupe/votre_repo
Line 159: Line 142:
 
Vérifiez que la case du "polling" est bien cochée. Le délai de 15 minutes n'a pas besoin d'être changé. Et TuxFamily préfèrerait qu'il ne le soit pas pour éviter de trop nombreuses requêtes sur ses serveurs.
 
Vérifiez que la case du "polling" est bien cochée. Le délai de 15 minutes n'a pas besoin d'être changé. Et TuxFamily préfèrerait qu'il ne le soit pas pour éviter de trop nombreuses requêtes sur ses serveurs.
  
== Obtenir des nouvelles régulières sur votre repository ==
+
== Obtenir des nouvelles régulières de votre dépôt ==
 +
Il est possible d'avoir des informations régulières à propos de votre dépôt. Il suffit pour cela d'utiliser le feed RSS placé sur le [http://websvn.tuxfamily.org WebSVN] de votre dépôt. Par exemple, pour avoir des nouvelles régulières du dépôt REPO appartenant au groupe GROUPE, utilisez le fichier XML suivant :<br />
 +
http://websvn.tuxfamily.org/rss.php?repname=REPO+%28GROUPE%29&path=%2F&rev=0&sc=0&isdir=1
  
Il est possible d'avoir des informations régulières à propos de votre repository. Il suffit pour cela d'utiliser le feed RSS placé sur le [http://svnweb.tuxfamily.org svnweb] de votre repository. Par exemple, pour avoir les news régulières du repository REPO appartenant au groupe GROUPE, utilisez le fichier XML suivant : http://svnweb.tuxfamily.org/rss.php?repname=REPO+%28GROUPE%29&path=%2F&rev=0&sc=0&isdir=1
+
Chaque dépôt dispose d'un feed RSS, il vous suffit donc de l'utiliser.
 
 
Chaque repository dispose d'un feed RSS, il vous suffit donc de l'utiliser.
 
  
 
==Utilisation d'une interface graphique==
 
==Utilisation d'une interface graphique==
 +
D'après https://linuxfr.org/~ploum/26097.html certains préfèrent travailler en mode graphique, vous avez l'embarras du choix sous GNU/Linux : [http://jasonfield.com/freebies/ NautilusSvn] pour Nautilus, SubClipse pour Eclipse, eSVN, [http://kdesvn.alwins-world.de  KdeSvn] ([http://kdesvn.alwins-world.de/screenshots copies d'écran]) pour Konqueror, [http://rapidsvn.tigris.org/ rapidsvn]. Utilisez votre gestionnaire de paquet préféré (urpmi, yum, apt-get, emerge...) pour l'installer !
  
 
===eSVN===
 
===eSVN===
Si vous êtes allergiques à la ligne de commande pourtant fort pratique, vous pouvez utiliser eSVN jusqu'à ce que le support de svn soit correctement opérationnel dans cervisia (qui vous sert peut-être déjà pour cvs).
+
Si vous êtes allergiques à la ligne de commande pourtant fort pratique, vous pouvez utiliser eSVN jusqu'à ce que le support de SVN soit correctement opérationnel dans Cervisia (qui vous sert peut-être déjà pour CVS).
  
Si vous utilisez la plateforme de developpement [[http://www.eclipse.org Eclipse]], il est possible d'utiliser subclipse un greffon disponible sur http://subclipse.tigris.org/  
+
Si vous utilisez la plateforme de développement [http://www.eclipse.org Eclipse], il est possible d'utiliser SubClipse un greffon disponible sur http://subclipse.tigris.org/  
  
Peut-être y-aura-t-il tortoiseSVN disponible pour GNU/Linux un jour ?  
+
Peut-être y aura-t-il TortoiseSVN disponible pour GNU/Linux un jour ?  
Pour windows, voici quelques tutoriels permettant de configurer l'utilisation d'une clé SSH avec tortoisePlink (version adaptée à tortoiseSVN de l'outil plink.exe en ligne de commande du célèbre putty)
+
Pour Windows, voici quelques tutoriels permettant de configurer l'utilisation d'une clé SSH avec TortoisePlink (version adaptée à TortoiseSVN de l'outil ''plink.exe'' en ligne de commande du célèbre Putty)
 
  - http://www.logemann.org/day/archives/000099.html
 
  - http://www.logemann.org/day/archives/000099.html
 
  - http://tortoisesvn.sourceforge.net/docs/release/TortoiseSVN_en/ch05s25.html
 
  - http://tortoisesvn.sourceforge.net/docs/release/TortoiseSVN_en/ch05s25.html
  
 
===TortoiseSVN===
 
===TortoiseSVN===
Pour utiliser SVN sous Windows, il existe le logiciel TortoiseSVN disponible sur http://tortoisesvn.net/downloads. Une traduction en français est disponible sur http://tortoisesvn.net/supported_languages . Pour le configurer en SSH, regarder la description de la configuration de session SSH située ci dessous.
+
Pour utiliser SVN sous Windows, il existe le logiciel TortoiseSVN disponible sur http://tortoisesvn.net/downloads. Une traduction en français est disponible sur http://tortoisesvn.net/supported_languages . Pour le configurer, regardez la description de la configuration de session SSH sur la page donnée en lien ci-dessous puis lisez la section dédiée à sa configuration ici.
 +
 
 +
Un tutoriel (fr): http://tortoisesvn.net/docs/release/TortoiseSVN_fr/index.html
  
 
===Configurer Eclipse ===
 
===Configurer Eclipse ===
Pour ajouter le support de [[http://subversion.tigris.org/ subversion]] à  [[http://www.eclipse.org/ Eclipse]] il faut installer le plug-in [[http://subclipse.tigris.org/ SubClipse]]. Pour installer ""SubClipse"" voir sur ce site http://www.think-underground.com/index.php/2006/01/30/162-monter-un-serveur-svn-subversion-et-y-acceder-depuis-eclipse.  
+
====SubClipse====
Par défaut ""SubClipse"" n'est pas paramétré pour gérer la connexion ssh. Pour l'activer, il faut lancer Eclipse, aller dans le menu "Window / Preference". Dans la liste, dérouler "Team" puis choisir "SVN". Dans la partie droite "SVN Interface", sélectionner ""JavaSVN (PureJava)"" au lieu de ""JavaHL (JNI)"". Maintenant vous pouvez reparamétrer la connexion au svn en utilisant
+
Pour ajouter le support de [http://subversion.tigris.org/ Subversion] à  [http://www.eclipse.org/ Eclipse] vous pouvez installer le plug-in [http://subclipse.tigris.org/ SubClipse]. Pour installer SubClipse voir [http://www.think-underground.com/index.php/2006/01/30/162-monter-un-serveur-svn-subversion-et-y-acceder-depuis-eclipse sur ce site].  
 +
Par défaut SubClipse n'est pas paramétré pour gérer la connexion SSH. Pour l'activer, il faut lancer Eclipse, aller dans le menu "Window / Preference". Dans la liste, dérouler "Team" puis choisir "SVN". Dans la partie droite "SVN Interface", sélectionner "JavaSVN (PureJava)" au lieu de "JavaHL (JNI)". Maintenant vous pouvez reparamétrer la connexion au SVN en utilisant :
  
 
  svn+ssh://VOTREUSER@svn.tuxfamily.org/svnroot/VOTREPROJET/NOMDUREPOSITORY
 
  svn+ssh://VOTREUSER@svn.tuxfamily.org/svnroot/VOTREPROJET/NOMDUREPOSITORY
  
== Déposer votre clé SSH ==
+
Si vous rencontrez des messages d'erreur de type "malformed network data", essayez avec Subversive.
  
=== Configurer SSH sous Linux ===
+
====Subversive====
Vous devez tout d'abord générer votre clef ssh, pour ce faire, ouvrez une console et tapez :
+
Une autre possibilité d'ajouter le support de [http://subversion.tigris.org/ Subversion] à [http://www.eclipse.org/ Eclipse] est d'installer le plug-in [http://www.polarion.org/index.php?page=overview&project=subversive Subversive].
$ ssh-keygen -t rsa
 
  
Une "passphrase" vous sera demandée. Une fois entrée, votre clef ssh est prète a être utilisée.
+
Avant tout, assurez-vous d'avoir désactivé ou désinstallé SubClipse.
Avant tout, il faut créer un fichier nommé "ssh_keys" qui contiendra le contenu de la clef publique générée.
+
Pour installer Subversive, aller dans "Help", "Software Updates", "Find and install", puis ajouter le site distant suivant :  
Faisons ainsi:  
 
$ cat ~/.ssh/id_rsa.pub >> ~/ssh_keys
 
$ chmod 700 ~/ssh_keys
 
  
Il faut maintenant les envoyer sur le serveur distant, en l'occurrence votre FTP Tuxfamily. Ouvrez un client FTP et allez sur votre compte, vous allez voir vos différents projets en cours, c'est à dire vos espaces Web. Restez a la base et copiez le fichier ssh_keys à l'intérieur.
+
http://www.polarion.org/projects/subversive/download/update-site/
  
 +
Puis validez l'installation de Subversive et des clients SVN livrés avec.
  
===Upload de la clef===
+
Pour éviter les erreurs de type "malformed network data", allez dans le menu "Window / Preference". Dans la liste, déroulez "Team" puis choisir "SVN". Dans l'onglet "SVN Client", choisissez "SVN Kit".
  
Il est possible de déposer votre clé SSH (publique) sur les serveurs de Tuxfamily. Cela vous permet de ne pas taper votre mot de passe à chaque opération effectuée sur le serveur Subversion.
+
Vous pouvez maintenant paramétrer la connexion au SVN en utilisant :
*Pour la déposer, il faut copier le contenu de votre clé publique dans le fichier '''ssh_keys''' (le créer si besoin) qui est placé dans votre répertoire de départ (répertoire home). Ce répertoire home est celui sur lequel vous arrivez lorsque vous vous identifiez sur le serveur FTP.
 
*Ce fichier doit être placé et avoir un chmod de 700 (faire le chmod 700 à l'aide du client ftp).
 
Autrement dit, seul VOUS, utilisateur, avez le droit de lire, d'écrire et d'exécuter ce fichier.
 
  
Votre clé publique ssh est dans ~/.ssh/id_rsa.pub ou id_dsa.pub (si vous avez retenu un mode faiblard d'encryption), c'est ce fichier que vous mettez en ligne sous le nom ssh_keys.
+
svn+ssh://VOTREUSER@svn.tuxfamily.org/svnroot/VOTREPROJET/NOMDUREPOSITORY
 
 
===Utilisation===
 
Désormais il ne reste plus qu'à lancer une session SSH sur votre machine. Ceci se résume en 2 commandes. Tout d'abord (au cas où) il faut "killer" tous les processus ssh-agent si vous en avez lancé un. Sachez qu'il faut toujours verifier que aucun autre agent ssh soit lancé car Gnome et d'autres environnements lancent un agent.
 
$killall ssh-agent
 
 
 
Puis nous allons lancer les 2 commandes qui vont permettre à votre machine de communiquer avec SVN via SSH.
 
$ ssh-agent $SHELL
 
$ ssh-add ~/.ssh/id_rsa
 
  
Si tout s'est bien passé, vous n'aurez pas à taper votre mot de passe à chaque commande SVN que vous ferez par la suite. A chaque fois que vous voudrez utiliser cvs, il faudra ouvrir une session SSH:
+
== Utilisation avec SSH ==
$ ssh-agent $SHELL
 
$ ssh-add  ~/.ssh/id_rsa
 
Et toute les commandes SVN devront être tapées dans le même SHELL.
 
  
Pour éviter de devoir ouvrir une session à la main à chaque session, ajoutez ces lignes dans le fichier .bashrc :
+
Il est possible de déposer votre clé SSH (publique) sur votre espace sur Tuxfamily. Cela vous permet de ne pas taper votre mot de passe à chaque opération effectuée sur le serveur Subversion.  Ensuite, il ne reste plus qu'à lancer une session SSH sur votre machine et toutes les commandes Subversion devront être tapées dans le même SHELL ou si vous êtes sous windows à configurer Putty.
if [ -f .ssh-agent ]; then
 
.ssh-agent
 
else
 
killall ssh-agent
 
ssh-agent > .ssh-agent
 
ssh-add ~/.ssh/id_rsa
 
fi
 
  
Note : Vous pouvez utiliser KeyChain http://www.gentoo.org/proj/en/keychain pour garder en mémoire votre passphrase et le ssh-agent.
+
Lisez cette page pour savoir précisément [[User/Fr#Acc.C3.A8s_SSH|comment faire tout ça]].
  
IMPORTANT: Notez bien votre passphrase, elle vous sera demandée lors du login de votre bash.
+
== Configuration de TortoiseSVN ==
  
=== Utilisation de SSH sous MS Windows avec TortoiseSVN ===
+
Vos logiciels Putty et compagnie sont configurés comme expliqués dans le lien ci-dessus, ensuite, pour mettre des fichiers sur le serveur SVN, créez votre arborescence avec vos fichiers sur votre PC puis cliquez droit sur le dossier contenant votre arborescence puis cliquez sur "Exporter" (si TortoiseSVN est en francais sinon "CheckOut"). Entrez l'adresse :
 +
svn+ssh://login_tuxfamily@NomQueVousAvezChoisiDansPutty(SavedSessions)/svnroot/NomDuGroupe/NomDuDepotSVN
  
Commencer par recuperer les logiciels "Putty", "Plink", "Pageant" and "Puttygen" sur le site http://www.chiark.greenend.org.uk/~sgtatham/putty/
+
Bien sûr, remplacez les champs par ceux correspondant. Votre arborescence devrait être sur votre serveur.
 
+
Si vous voulez récupérer des fichiers du serveur, cliquez sur "Extraire" (à la place de "Exporter") dans un répertoire vide.
Lancer Puttygen, cliquez sur generer, puis bouger votre souris dans le carre vide(pendant 5 à 6 sec). Quoi de plus aleatoire?? Entrer la key Passphrase. Cela permet de proteger la cle. Enregistrer votre cle privé grace au bouton "save Private Key". Mettez ca en lieu sur (pour ne pas la perdre et que personne ne la recopie).
 
Copiez ensuite la cle publique situé en haut de la fenetre.
 
Collez la dans un fichier que vous nommerez "ssh_keys".
 
Grace à un client FTP copiez le fichier "ssh_keys" à la racine du ftp de votre compte (acces par ftp.tuxfamily.org, login: celui de votre compte, mdp: celui de votre compte). Mettez l'acces pour que seul vous puissiez y acceder (en lecture, ecriture, execution)(chmod 700).
 
 
 
lancer Putty et configurer le comme suit:
 
 
 
Session->HostName: svn.tuxfamily.org
 
 
 
Session->Protocol: SSH
 
 
 
Session->Saved Sessions: Ce que vous voulez(par exemple tuxfamily)
 
 
 
SSH->Prefered SSH Protocol version: 2
 
 
 
SSH->Auth->Private Key file for auth: entrer l'emplacement et le nom de votre fichier ou est stocke votre cle privé.
 
 
 
 
 
Dans le menu Session, cliquer sur "Save" afin d'enregistrer la configuration.
 
Cliquez sur Open. Si une fenetre apparait puis se ferme c'est bon. Sinon c'est qu'il y a un probleme.
 
 
 
=== Configuration de TortoiseSVN ===
 
 
 
Pour mettre des fichiers sur le serveur SVN, créer votre arborescence avec vos fichiers sur votre PC puis cliquer droit sur le dossier contenant votre arborescence puis cliquer sur Exporter (si TortoiseSVN est en francais sinon CheckOut)
 
Entrer l'adresse :
 
svn+ssh://login_tuxfamily@NomQueVousAvezChoisiDansPutty(SavedSessions)/svnroot/NomDuGroupe/NomDuDepotSVN . Bien sûr, remplacer les champs par ceux correspondant. Votre arborescence devrait être sur votre serveur.
 
Si vous voulez récuperer des fichiers du serveur, cliquer sur Extraire (à la place de exporter) dans un répertoire vide.
 
 
 
Par la suite, pour mettre des fichiers sur votre serveur, cliquer sur Livrer (ou Commit). Pour mettre à jour la version sur votre PC, utiliser la fonction Mettre à jour (ou Update) du menu Tortoise.
 
 
 
=== Utilisation de Pageant pour mémoriser la passphrase de la clef SSH ===
 
Lancez Pageant, récupéré préalablement comme indiqué ci-dessus.
 
Celui-ci se charge, et une icône est rajoutée dans la barre des tâches. Double-cliquez dessus pour ouvrir la fenetre principale de Pageant.
 
Cliquez sur le bouton "Add Key" et sélectionnez le fichier de la clef privé ("votre_fichier.ppk").
 
Pageant vous demande alors la passphrase de la clef. Une fois la passphrase entrée, vous pouvez effectuer vos connections sans avoir à retaper à chaque fois la passphrase.
 
 
 
Note importante : Cette opération est à refaire après chaque redémarrage de Pageant, si vous cliquez sur Exit, par exemple, dans le menu contextuel de l'icone de la barre des tâches, ou si vous redémarrez votre machine.
 
Vous pouvez automatiser cette procédure au démarrage de votre machine en créant un raccourci dans votre dossier démarrage, en mettant cette ligne de commande :
 
"E:\Program Files\PuTTY\pageant.exe" "X:\mon_chemin\ma_clef.ppk"
 
 
 
Vous n'aurez ainsi qu'à taper la passphrase au démarrage de Windows dans la petite boite de dialogue qui vous attendra bien gentillement!
 
  
 +
Par la suite, pour mettre des fichiers sur votre serveur, cliquer sur "Livrer" (ou "Commit"). Pour mettre à jour la version sur votre PC, utiliser la fonction "Mettre à jour" (ou "Update") du menu Tortoise.
  
 
==Développement collaboratif, droits d'écriture==
 
==Développement collaboratif, droits d'écriture==
Tous les utilisateurs du groupe auront la permission d'écrire sur le SVN. Autrement dit, si vous désirez développer à plusieurs sur un même repository, il est conseillé d'ajouter les développeurs au groupe via le panel. Toutefois, il faut que les développeurs se créent un compte sur le panel au préalable.
+
Tous les utilisateurs du groupe auront la permission d'écrire sur le SVN. Autrement dit, si vous désirez développer à plusieurs sur un même dépôt, il est conseillé d'ajouter les développeurs au groupe via le panel. Toutefois, il faut que les développeurs se créent un compte sur le panel au préalable.
  
Un projet correspond à un groupe (au sens Unix du terme), il faut ajouter vos co-développeurs à votre projet pour qu'ils puissent commiter des modifications au dépôt subversion (ils auront aussi accès à l'arborescence, permettant de maintenir l'intégralité du projet collaborativement).
+
Un projet correspond à un groupe (au sens Unix du terme), il faut ajouter vos co-développeurs à votre projet pour qu'ils puissent commiter des modifications au dépôt Subversion (ils auront aussi accès à l'arborescence, permettant de maintenir l'intégralité du projet collaborativement).
  
Autrement, vous risquez d'obtenir le message suivant :
+
Autrement, les co-développeurs risquent d'obtenir le message suivant lors d'un commit (SVN ici) :
 
  Transmission des données .svn: Échec de la propagation (commit), détails :  
 
  Transmission des données .svn: Échec de la propagation (commit), détails :  
 
  svn: Can't create directory '/svnroot/votreprojet/votrerepository/db/transactions/7-1.txn': Permission denied
 
  svn: Can't create directory '/svnroot/votreprojet/votrerepository/db/transactions/7-1.txn': Permission denied
 +
 +
Précision : pour ajouter un utilisateur au groupe, allez dans les préférences du groupe.
  
 
= Remarques diverses =
 
= Remarques diverses =
 
*Il est conseillé de ne commiter que des éléments qui compilent correctement (mais qui ne fonctionnent pas forcément) afin que le trunk puisse être testé n'importe quand par de nouveaux utilisateurs.
 
*Il est conseillé de ne commiter que des éléments qui compilent correctement (mais qui ne fonctionnent pas forcément) afin que le trunk puisse être testé n'importe quand par de nouveaux utilisateurs.
  
*Vous devez choisir les fichiers à versionner, il n'est pas exemple pas nécessaire d'archiver des fichiers de backup (faites attention aux éditeurs qui créent des copies en xxx~, ces copies ne doivent pas être versionnées) ni les fichiers issus directement de la compilation des sources. Pour cela, subversion propose la propriété svn:ignore (http://svnbook.red-bean.com/nightly/en/svn-book.html#svn.advanced.props).
+
*Vous devez choisir les fichiers à versionner, il n'est par exemple pas nécessaire d'archiver des fichiers de backup (faites attention aux éditeurs qui créent des copies en xxx~, ces copies ne doivent pas être versionnées), ni les fichiers issus directement de la compilation des sources. Pour cela, Subversion propose la propriété [http://svnbook.red-bean.com/nightly/en/svn-book.html#svn.advanced.props svn:ignore].
 +
 
 +
*Evitez de prendre un nom générique comme "svn" ou "subversion". Utilisez plutôt un nom en rapport avec votre projet ou même, prenez le nom de votre projet...
  
*Evitez de prendre un nom générique comme "svn" ou "subversion". Utilisez plutot un nom en rapport avec votre projet ou même, prenez le nom de votre projet ...
+
*Est-il possible d'avoir des hooks Subversion personnalisés ? Comme par exemple un lien entre un dépôt Subversion et un script PHP sur un espace web ? Non, pour des raisons techniques (sécurité et intégrité des données versionnées d'une part, séparation des services Web et Subversion d'autre part), la personnalisation des hooks Subversion n'est pas (encore) possible.
  
 
= Liens utiles =
 
= Liens utiles =
 
*http://svnbook.red-bean.com
 
*http://svnbook.red-bean.com
*http://www.pushok.com/soft_svn_vscvs.php (pourquoi subversion plutôt que cvs ? )
+
*http://www.pushok.com/soft_svn_vscvs.php (pourquoi Subversion plutôt que CVS ? )
 
*http://subversion.tigris.org (site de référence)
 
*http://subversion.tigris.org (site de référence)
*https://svnhost.gi.polymtl.ca/utilisationSVN.html (idem en Franćais)
+
*https://svnhost.gi.polymtl.ca/utilisationSVN.html (idem en Français)
 
*http://svnbook.red-bean.com/en/1.1/index.html (le SVNbook)
 
*http://svnbook.red-bean.com/en/1.1/index.html (le SVNbook)
*http://www.cs.put.poznan.pl/csobaniec/Papers/svn-refcard.pdf (référence)
+
*http://www.fylrr.com/archives.php?doc=svn-refcard.pdf (référence)
 
*http://www.abbeyworkshop.com/howto/misc/svn01/ (résumé du SVNBook)
 
*http://www.abbeyworkshop.com/howto/misc/svn01/ (résumé du SVNBook)
 
*https://forge.ipsl.jussieu.fr/docipsl/wiki (présentation de SVN)
 
*https://forge.ipsl.jussieu.fr/docipsl/wiki (présentation de SVN)

Latest revision as of 11:32, 12 April 2014

Dépôt SVN



Description

Subversion est le successeur de CVS. C'est un gestionnaire de code source comme l'est GIT ; vous en trouverez une petite présentation ici : https://forge.ipsl.jussieu.fr/docipsl/wiki

Dépendances

Création

  • Rendez-vous sur le panel
  • Cliquez sur le lien du projet auquel vous voulez ajouter un dépôt SVN
  • Choisissez le nom de votre dépôt
  • Validez

Conseils de création

  • Ne choisissez pas un nom trop générique
  • Pensez à remplir la description pour éviter les soucis avec les modos ;)

Modération

Cet objet est soumis à la modération voir : ici.

Comment l'administrer (panel)

Sur le panel vous pouvez décider si ce dépôt est public ou non.
En cochant oui vous permettez un login anonymous en lecture seule sur le dépôt et en permettez la consultation par le svnweb.

Configuration

Comment gérer les droits de mon groupe

Cet objet peut être partagé avec votre groupe en utilisant les ACL.

Comment le détruire

  • Logguez-vous sur le panel
  • Cliquez sur le groupe de votre projet
  • Cliquez sur votre depôt SVN
  • Cliquez sur détruire

Comment l'utiliser

Bon, vous avez pris un hébergement chez Tuxfamily, c'est bien. Vous avez opté pour un dépôt subversion, c'est mieux. Nous allons vous expliquer comment utiliser tout cela.

Utilisation basique

Check out

Nous partons du principe que vous souhaitez faire ici une utilisation basique de Subversion. Commencez par faire un checkout de votre dépôt :

svn co svn+ssh://VOTREUSER@svn.tuxfamily.org/svnroot/VOTREPROJET/NOMDUREPOSITORY

Remplacez bien sûr VOTREUSER par votre nom d'utilisateur sur le panel, VOTREPROJET par le nom du projet auquel appartient le dépôt de nom NOMDUREPOSITORY.

Vous pouvez obtenir un message du genre "The authenticity of host can't be established", vous demandant si vous voulez poursuivre. Confirmez par "yes".

Attention, votre mot de passe risque de vous être demandé plusieurs fois, jusqu'à 3 fois. Cela n'est pas un bug, c'est dû à svn qui utilise plusieurs connexions, il vous faudra donc rentrer votre mot de passe autant de fois qu'il vous sera demandé, ou utiliser une clef ssh (voir plus bas).

Pour tester votre accès au référentiel subversion, vous pouvez utiliser quelque chose dans ce goût-là :

[soda@evira:/tmp/subversion] svn co svn+ssh://sod@svn.tuxfamily.org/svnroot/vhffs4/vhffs repertoire
Révision 0 extraite.
[soda@evira:/tmp/subversion] $

Alléluia, tout fonctionne. Le répertoire "repertoire" a été créé (ajouté à la fin de la commande), il est bien sûr vide puisque votre référentiel ne contient aucun fichier.

Création du layout de base

Bien que ce ne soit pas une obligation, il est conseillé d'organiser votre référentiel comme suit :

SVNROOT
|
|_ branches
|_ tags
|_ trunk

Cela vous facilitera la vie lors de l'évolution de votre projet : le répertoire trunk contiendra toujours la dernière version en cours de développement, tags servira uniquement à noter des versions (il est conseillé de créer un tags à chaque version afin que les utilisateurs puissent obtenir facilement le code correspondant à une version donnée) tandis que branches permettra d'ajouter des fonctionnalités encore trop instables pour être présentes dans le trunk.

Voyez la page en anglais du svn book pour plus de détails.

Import initial

Si vous n'avez pas encore de fichiers à placer sous subversion, vous pouvez créer le layout simplement :

cd /tmp
mkdir monprojet
cd monprojet && mkdir trunk branches tags
svn import . svn+ssh://UTILISATEUR@svn.tuxfamily.org/svnroot/GROUPE/REPOSITORY -m "Import initial ou tout autre message qui vous chante"

L'import va recopier récursivement le contenu du répertoire directement dans le référentiel.

Si vous avez déjà des fichiers composant le projet, il vous suffit de procéder de la même façon mais de ne faire l'import qu'après avoir copié vos fichiers dans le répertoire trunk.

Après cet import, il vous faut faire un checkout du référentiel :

svn co svn+ssh://USER@svn.tuxfamily.org/svnroot/GROUPE/REPOSITORY unrepertoire

"unrepertoire" étant le répertoire dans lequel vous allez travailler. Si tous les fichiers sont bien présents, vous pouvez supprimer le répertoire à partir duquel vous avez fait l'import et passer à la suite de ce document.

Ajout/suppression de fichiers, mise à jour du repository

Ajout de fichier

Entrons donc dans notre répertoire

cd repertoire

Et créons un fichier appelé "file"

touch file

Ensuite, pour l'ajouter au dépôt, tapez simplement

svn add file

Enfin, pour envoyer le tout sur le serveur, invoquez la commande suivante :

svn ci

plus classe :

svn ci --message "message de commit qui apparaîtra dans le changelog" 

Pour les répertoires, nous aurions procédé de la même façon

svn add directory

puis:

svn ci

Suppression de fichier

Pour supprimer un fichier présent dans le dépôt, tapez simplement

svn rm file

puis envoyez vos modifications sur le serveur

svn ci

Mise à jour du dépôt

Quand on travaille en groupe, il peut être utile de pouvoir mettre à jour son dépôt subversion. Pour cela, il suffit d'invoquer la commande suivante à la base du dépôt

svn up

Utilisation de Subversion en anonymous

Il est possible d'utiliser Subversion en anonyme. Cependant, vous n'aurez pas le droit de modifier le dépôt (suppression ou modification de fichiers). Pour faire un 'checkout' du dépôt, invoquez la commande suivante :

svn co svn://svn.tuxfamily.org/svnroot/VOTREPROJET/NOMDUREPOSITORY

Il est également possible de mettre à jour le dépôt au fur et à mesure que les développeurs mettent à jour le code via un simple :

svn up

Attention cependant, le mode anonyme n'est disponible que si votre dépôt est mis en public (réglage par défaut).

Utilisation de l'interface web

Vous pouvez consulter les dépôts par le web à l'adresse suivante : http://svn.tuxfamily.org
Les URLs sont de la forme http://svn.tuxfamily.org/groupe/dépôt/ ( http://svn.tuxfamily.org/vhffs4/vhffs/ par exemple )

Pour ceux qui préfèrent WebSVN, ils peuvent être comblés à l'adresse http://websvn.tuxfamily.org
Les dépôts sont présentés sous la forme groupe/dépôt.

Utilisation via CIA

CIA est un système de commits, visitez le site pour de plus amples informations le concernant. Pour ajouter le support de CIA à votre dépôt TuxFamily, créez un compte utilisateur sur leur site. Puis, créez un projet, nommez-le comme bon vous semble, dans la partie configuration vous devriez voir un onglet "repository", allez dessus. Il vous faut alors cocher la case "Connect to a public Subversion repository", et remplir les champs qui apparaitront à vos yeux de la manière suivante :

Repository URL: svn://svn.tuxfamily.org/svnroot/votre_groupe/votre_repo

Vérifiez que la case du "polling" est bien cochée. Le délai de 15 minutes n'a pas besoin d'être changé. Et TuxFamily préfèrerait qu'il ne le soit pas pour éviter de trop nombreuses requêtes sur ses serveurs.

Obtenir des nouvelles régulières de votre dépôt

Il est possible d'avoir des informations régulières à propos de votre dépôt. Il suffit pour cela d'utiliser le feed RSS placé sur le WebSVN de votre dépôt. Par exemple, pour avoir des nouvelles régulières du dépôt REPO appartenant au groupe GROUPE, utilisez le fichier XML suivant :
http://websvn.tuxfamily.org/rss.php?repname=REPO+%28GROUPE%29&path=%2F&rev=0&sc=0&isdir=1

Chaque dépôt dispose d'un feed RSS, il vous suffit donc de l'utiliser.

Utilisation d'une interface graphique

D'après https://linuxfr.org/~ploum/26097.html certains préfèrent travailler en mode graphique, vous avez l'embarras du choix sous GNU/Linux : NautilusSvn pour Nautilus, SubClipse pour Eclipse, eSVN, KdeSvn (copies d'écran) pour Konqueror, rapidsvn. Utilisez votre gestionnaire de paquet préféré (urpmi, yum, apt-get, emerge...) pour l'installer !

eSVN

Si vous êtes allergiques à la ligne de commande pourtant fort pratique, vous pouvez utiliser eSVN jusqu'à ce que le support de SVN soit correctement opérationnel dans Cervisia (qui vous sert peut-être déjà pour CVS).

Si vous utilisez la plateforme de développement Eclipse, il est possible d'utiliser SubClipse un greffon disponible sur http://subclipse.tigris.org/

Peut-être y aura-t-il TortoiseSVN disponible pour GNU/Linux un jour ? Pour Windows, voici quelques tutoriels permettant de configurer l'utilisation d'une clé SSH avec TortoisePlink (version adaptée à TortoiseSVN de l'outil plink.exe en ligne de commande du célèbre Putty)

- http://www.logemann.org/day/archives/000099.html
- http://tortoisesvn.sourceforge.net/docs/release/TortoiseSVN_en/ch05s25.html

TortoiseSVN

Pour utiliser SVN sous Windows, il existe le logiciel TortoiseSVN disponible sur http://tortoisesvn.net/downloads. Une traduction en français est disponible sur http://tortoisesvn.net/supported_languages . Pour le configurer, regardez la description de la configuration de session SSH sur la page donnée en lien ci-dessous puis lisez la section dédiée à sa configuration ici.

Un tutoriel (fr): http://tortoisesvn.net/docs/release/TortoiseSVN_fr/index.html

Configurer Eclipse

SubClipse

Pour ajouter le support de Subversion à Eclipse vous pouvez installer le plug-in SubClipse. Pour installer SubClipse voir sur ce site. Par défaut SubClipse n'est pas paramétré pour gérer la connexion SSH. Pour l'activer, il faut lancer Eclipse, aller dans le menu "Window / Preference". Dans la liste, dérouler "Team" puis choisir "SVN". Dans la partie droite "SVN Interface", sélectionner "JavaSVN (PureJava)" au lieu de "JavaHL (JNI)". Maintenant vous pouvez reparamétrer la connexion au SVN en utilisant :

svn+ssh://VOTREUSER@svn.tuxfamily.org/svnroot/VOTREPROJET/NOMDUREPOSITORY

Si vous rencontrez des messages d'erreur de type "malformed network data", essayez avec Subversive.

Subversive

Une autre possibilité d'ajouter le support de Subversion à Eclipse est d'installer le plug-in Subversive.

Avant tout, assurez-vous d'avoir désactivé ou désinstallé SubClipse. Pour installer Subversive, aller dans "Help", "Software Updates", "Find and install", puis ajouter le site distant suivant :

http://www.polarion.org/projects/subversive/download/update-site/ 

Puis validez l'installation de Subversive et des clients SVN livrés avec.

Pour éviter les erreurs de type "malformed network data", allez dans le menu "Window / Preference". Dans la liste, déroulez "Team" puis choisir "SVN". Dans l'onglet "SVN Client", choisissez "SVN Kit".

Vous pouvez maintenant paramétrer la connexion au SVN en utilisant :

svn+ssh://VOTREUSER@svn.tuxfamily.org/svnroot/VOTREPROJET/NOMDUREPOSITORY

Utilisation avec SSH

Il est possible de déposer votre clé SSH (publique) sur votre espace sur Tuxfamily. Cela vous permet de ne pas taper votre mot de passe à chaque opération effectuée sur le serveur Subversion. Ensuite, il ne reste plus qu'à lancer une session SSH sur votre machine et toutes les commandes Subversion devront être tapées dans le même SHELL ou si vous êtes sous windows à configurer Putty.

Lisez cette page pour savoir précisément comment faire tout ça.

Configuration de TortoiseSVN

Vos logiciels Putty et compagnie sont configurés comme expliqués dans le lien ci-dessus, ensuite, pour mettre des fichiers sur le serveur SVN, créez votre arborescence avec vos fichiers sur votre PC puis cliquez droit sur le dossier contenant votre arborescence puis cliquez sur "Exporter" (si TortoiseSVN est en francais sinon "CheckOut"). Entrez l'adresse :

svn+ssh://login_tuxfamily@NomQueVousAvezChoisiDansPutty(SavedSessions)/svnroot/NomDuGroupe/NomDuDepotSVN

Bien sûr, remplacez les champs par ceux correspondant. Votre arborescence devrait être sur votre serveur. Si vous voulez récupérer des fichiers du serveur, cliquez sur "Extraire" (à la place de "Exporter") dans un répertoire vide.

Par la suite, pour mettre des fichiers sur votre serveur, cliquer sur "Livrer" (ou "Commit"). Pour mettre à jour la version sur votre PC, utiliser la fonction "Mettre à jour" (ou "Update") du menu Tortoise.

Développement collaboratif, droits d'écriture

Tous les utilisateurs du groupe auront la permission d'écrire sur le SVN. Autrement dit, si vous désirez développer à plusieurs sur un même dépôt, il est conseillé d'ajouter les développeurs au groupe via le panel. Toutefois, il faut que les développeurs se créent un compte sur le panel au préalable.

Un projet correspond à un groupe (au sens Unix du terme), il faut ajouter vos co-développeurs à votre projet pour qu'ils puissent commiter des modifications au dépôt Subversion (ils auront aussi accès à l'arborescence, permettant de maintenir l'intégralité du projet collaborativement).

Autrement, les co-développeurs risquent d'obtenir le message suivant lors d'un commit (SVN ici) :

Transmission des données .svn: Échec de la propagation (commit), détails : 
svn: Can't create directory '/svnroot/votreprojet/votrerepository/db/transactions/7-1.txn': Permission denied

Précision : pour ajouter un utilisateur au groupe, allez dans les préférences du groupe.

Remarques diverses

  • Il est conseillé de ne commiter que des éléments qui compilent correctement (mais qui ne fonctionnent pas forcément) afin que le trunk puisse être testé n'importe quand par de nouveaux utilisateurs.
  • Vous devez choisir les fichiers à versionner, il n'est par exemple pas nécessaire d'archiver des fichiers de backup (faites attention aux éditeurs qui créent des copies en xxx~, ces copies ne doivent pas être versionnées), ni les fichiers issus directement de la compilation des sources. Pour cela, Subversion propose la propriété svn:ignore.
  • Evitez de prendre un nom générique comme "svn" ou "subversion". Utilisez plutôt un nom en rapport avec votre projet ou même, prenez le nom de votre projet...
  • Est-il possible d'avoir des hooks Subversion personnalisés ? Comme par exemple un lien entre un dépôt Subversion et un script PHP sur un espace web ? Non, pour des raisons techniques (sécurité et intégrité des données versionnées d'une part, séparation des services Web et Subversion d'autre part), la personnalisation des hooks Subversion n'est pas (encore) possible.

Liens utiles