Difference between revisions of "SVN/En"

From TuxFamilyFAQ
Jump to navigationJump to search
m (→‎Utilisation du Svnweb: _ -> / in URLs)
 
(42 intermediate revisions by 7 users not shown)
Line 2: Line 2:
  
 
{{Template:Languages}}
 
{{Template:Languages}}
 
This page is being translated ! The translation is not yet finished, and there could be grammatical errors on the page !!
 
  
 
= Description =
 
= Description =
  
 
Subversion was created to replace [[CVS/En|CVS]]
 
Subversion was created to replace [[CVS/En|CVS]]
You can find more informations about SVN [[http://en.wikipedia.org/wiki/Subversion_%28software%29|here]]
+
For more informations about SVN, please take a look at its [http://en.wikipedia.org/wiki/Subversion_%28software%29 wikipedia] writeup.
 +
 
 +
In addition, you might also want to consider [[GIT/En|GIT]].
  
 
= Requirements =
 
= Requirements =
Line 22: Line 22:
 
*Validate
 
*Validate
  
== creating tips ==  
+
== creation tips ==  
  
*Don't choose a too usual name
+
*Don't choose a too generic name
 
*Fill the description field to avoid problems with the moderation team ;)
 
*Fill the description field to avoid problems with the moderation team ;)
  
Line 31: Line 31:
 
Your repository will be subject to moderation, see [[Moderation/En|here]]
 
Your repository will be subject to moderation, see [[Moderation/En|here]]
  
= How to administrate it (panel) =
+
= How to administer (panel) =
  
 
On the panel you can choose if you want the repository to be public.
 
On the panel you can choose if you want the repository to be public.
By accepting it, you allow a read-only anonymous login on the repository and you allow viewing it from the svnweb
+
By accepting it, you allow a read-only anonymous login on the repository and you allow viewing it from the [http://svn.tuxfamily.org/ svnweb].
  
 
== Configuration ==
 
== Configuration ==
  
== How to handle group rights ==
+
== How to manage group rights ==
  
 
This object can be shared with your group using the [[Acl/En|ACL]]
 
This object can be shared with your group using the [[Acl/En|ACL]]
  
== How to destroy it ==
+
== How to delete ==
  
 
*Log into the panel
 
*Log into the panel
 
*click on the group corresponding to your project
 
*click on the group corresponding to your project
 
*click on your SVN repository
 
*click on your SVN repository
*click on destroy
+
*click on delete
 +
 
 +
= Usage =
  
= How to use it =
+
So, you've chosen to be hosted by TuxFamily, that's good. You chose a subversion repository, that's great ! We're going to teach you how to use it.
  
So, you've chosen to be hosted by tuxfamily, that's good. You chose a subversion repository, that's great ! We're going to teach you how to use it.
+
Note: because TuxFamily-hosted SVN repositories require SSH access, please review the note on [[User/En#SSH_access| SSH Access]] first.
  
 
== Basic Operations==
 
== Basic Operations==
Line 64: Line 66:
 
'''Warning''', your password may be asked several times. This is not a bug, it is caused by SVN which uses several connections, so you have to enter several times your password, or you can use a SSH key (see below)
 
'''Warning''', your password may be asked several times. This is not a bug, it is caused by SVN which uses several connections, so you have to enter several times your password, or you can use a SSH key (see below)
  
Pour tester votre accès au référentiel subversion, vous pouvez utiliser quelque chose dans ce goût là :
+
To test your access to the SVN referential, you can try something like this :
  [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 folder
 
  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.
+
Yeah, it's allright ! The folder ##folder## has been created. Of course, it's empty, because your referential doesn't include any file.
  
=== Création du layout de base ===
+
=== Creating the base layout ===
  
Bien que ce ne soit pas une obligation, il est conseillé d'organiser votre référentiel comme suit :
+
Even though it's not an obligation, you should arrange your referential like this :
  
 
  SVNROOT
 
  SVNROOT
Line 81: Line 83:
 
  |_ 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.
+
This will help you during the evolution of your project : the folder ''trunk'' will always include the last development version, ''tags'' will only be here to contain version notes (you should create a tag for each release, it will be easier for the users to know which code is associated to a version) and ''branches'' will allow you to add features which are too unstable to be present in the trunk.  
  
=== Import initial ===
+
=== First Import ===
Si vous n'avez pas encore de fichiers à placer sous subversion, vous pouvez créer le layout simplement :
+
If you have no files yet to put under subversion, you can simply create the layout :
  
 
  cd /tmp
 
  cd /tmp
  mkdir monprojet
+
  mkdir myproject
  cd monprojet && mkdir trunk && mkdir branches && mkdir tags
+
  cd myproject && mkdir trunk && mkdir branches && mkdir 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://USERNAME@svn.tuxfamily.org/svnroot/GROUP/REPOSITORY -m "Initial import description."
  
L'import va recopier récursivement le contenu du répertoire directement dans le référentiel.
+
The import will recursively copy the content of the myproject folder directly in the repository.
  
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.
+
If you already have files for this project, you just have to do the same thing, but after you have copied your files into the trunk folder.
  
Après cet import, il vous faut faire un checkout du référentiel
+
Once it's done, you'll have to perform a checkout of the repository.
  svn co svn+ssh://USER@svn.tuxfamily.org/svnroot/GROUPE/REPOSITORY unrepertoire
+
  svn co svn+ssh://USER@svn.tuxfamily.org/svnroot/GROUP/REPOSITORY afolder
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.
+
''afolder'' is the folder you want to work with. If all the files are present, you can delete the directory from which you made the import.
  
=== Ajout/suppression de fichiers, mise à jour du repository ===
+
=== Add/delete files, update of the repository ===
  
==== Ajout de fichier ====
+
==== Add a file ====
  
Entrons donc dans notre répertoire
+
Let's enter our folder
  cd repertoire
+
  cd myfolder
  
Et créons un fichier appelé ##file##
+
And create a file named  ##test##
  touch file
+
  touch test
  
Ensuite, pour l'ajouter au repository, tapez simplement
+
To add it to the repository, just type
  svn add file
+
  svn add test
  
Enfin, pour envoyer le tout sur le serveur, invoquez la commande suivante :
+
If you want to upload all on the repository, type
 
  svn ci
 
  svn ci
plus classe :
+
more serious:
svn ci --message "message de commit qui apparaîtra dans le changelog"  
+
svn ci --message "commit message that will appear in the changelog."  
  
Pour les répertoires, nous aurions procédé de la même façon
+
Adding a folder is exactly the same:
 
  svn add directory
 
  svn add directory
puis:  
+
then:  
 
  svn ci
 
  svn ci
  
====Suppression de fichier ====
+
==== Delete a file ====
Pour supprimer un fichier présent dans le repository, tapez simplement
+
To delete a file on the repository, just type:
  svn rm file
+
  svn rm mybogofile
puis envoyez vos modifications sur le serveur
+
and send your modifiactions to the server
 
  svn ci
 
  svn ci
  
  
==== Mise à jour du repository ====
+
==== Update the repository ====
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
+
If several people work on the repository, it can be helpful to update your SVN repository. to do this, you just have to type this command at the repository root
 
  svn up
 
  svn up
  
 +
== Using Subversion in anonymous mode==
  
== Utilisation de Subversion en anonymous ==
+
It is possible to use Subversion without logging in . However, you won't be allowed to write on the repository (adding, editing or removing files). To perform a checkout, type:
 
+
  svn co svn://svn.tuxfamily.org/svnroot/PROJECT/REPOSITORY
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 :
 
  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
+
You can also update the repository each time the developpers update the code with
 
  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)
+
Warning, anonymous mode is available only if your repository is set in public mode (default).
 
+
Of course, you won't be able to commit in annonymous mode.
== Utilisation du Svnweb ==
 
  
Vous pouvez consulter les repositories par le web à l'adresse suivante : http://svn.tuxfamily.org
+
== Using the web interface ==
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 svnweb, ils peuvent être comblés à l'adresse http://svnweb.tuxfamily.org
+
You can list the repositories using http://svn.tuxfamily.org<br />
Les dépôts sont présentés sous la forme groupe/dépot.
+
URLs looks like:  http://svn.tuxfamily.org/group/repository/ ( http://svn.tuxfamily.org/vhffs4/vhffs/ for example)
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 ==
+
If you prefer WebSVN, it is available at http://websvn.tuxfamily.org.
[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 :
 
  
Repository URL: svn://svn.tuxfamily.org/svnroot/votre_groupe/votre_repo
+
== Using CIA ==
 +
[http://cia.vc CIA] is a commits system, visit the website for more informaton. to enable support of [http://cia.vc CIA] on your TuxFamily repository, create a user account on their website. Then, create a project, name it as you want, in the configuration part you should see a "repository" part, click on it. Then, you have to check the box "Connect to a public Subversion repository" and to fill the rest of the form :
  
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.
+
Repository URL: svn://svn.tuxfamily.org/svnroot/your_group/your_repository
  
== Obtenir des nouvelles régulières sur votre repository ==
+
Check that the "polling" box is checked. Please do not change the 15 minutes delay to keep the number of queries minimal.
  
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
+
== How to keep in touch with your repository ==
  
Chaque repository dispose d'un feed RSS, il vous suffit donc de l'utiliser.
+
It is possible to have regular feedback from your repository. You just have to use [http://websvn.tuxfamily.org WebSVN]'s RSS feed. For example, to have the RSS feed for the ''REPO'' repository in the group ''GROUP'', you would use the following URL :
 +
http://websvn.tuxfamily.org/rss.php?repname=REPO+%28GROUP%29&path=%2F&rev=0&sc=0&isdir=1
  
==Utilisation d'une interface graphique==
+
==Using a graphical interface==
 +
Some may prefer to work graphically, you have the choice under GNU/Linux : [http://jasonfield.com/freebies/ NautilusSvn] for Nautilus, SubClipse for eclipse, eSVN, [http://kdesvn.alwins-world.de  KdeSvn] [[http://kdesvn.alwins-world.de/screenshots screenshots]] for konqueror, [http://rapidsvn.tigris.org/ rapidsvn]. Use your preferred packet manager (urpmi, yum, apt-get, emerge...) to install it !
  
 
===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 utilisez la plateforme de developpement [[http://www.eclipse.org Eclipse]], il est possible d'utiliser subclipse un greffon disponible sur http://subclipse.tigris.org/
+
If you are not command-line tools compliant, you can use a graphical tool such as eSVN or the [[http://www.eclipse.org Eclipse]] suite.
  
Peut-être y-aura-t-il tortoiseSVN disponible pour GNU/Linux un jour ?  
+
Maybe one day, there will be a tortoise SVN for GNU/Linux ?
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===
 
===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.
 
 
===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.
 
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
 
 
== Déposer votre clé SSH ==
 
 
=== Configurer SSH sous Linux ===
 
Vous devez tout d'abord générer votre clef ssh, pour ce faire, ouvrez une console et tapez :
 
$ 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, il faut créer un fichier nommé "ssh_keys" qui contiendra le contenu de la clef publique générée.
 
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.
 
 
 
===Upload de la clef===
 
 
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.
 
*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.
 
 
===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:
 
$ 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 :
 
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.
 
 
IMPORTANT: Notez bien votre passphrase, elle vous sera demandée lors du login de votre bash.
 
 
=== Utilisation de SSH sous MS Windows avec TortoiseSVN ===
 
  
Commencer par recuperer les logiciels "Putty", "Plink", "Pageant" and "Puttygen" sur le site http://www.chiark.greenend.org.uk/~sgtatham/putty/
+
Windows only. You can download Tortoise SVN from the [http://tortoisesvn.net/downloads TortoiseSVN] website.
  
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).
+
Please review the FAQ note on [[User/En#SSH_for_windows-based_SVN_users|SSH for Windows-based SVN users]] and consult the TortoiseSVN [http://tortoisesvn.net/faq FAQ] on how to use [http://tortoisesvn.net/ssh_howto TortoiseSVN with SSH].
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:
+
==== Configuring  TortoiseSVN ====
  
Session->HostName: svn.tuxfamily.org
+
To start your SVN repository, create a directory on your PC for the project files, then right-click on that  folder and select TortoiseSVN->Export...
 +
The URL you specify should be of the form:
 +
svn+ssh://''tuxfamily_LOGIN''@''Name_of_PuTTY_saved_session''/svnroot/''GROUP_name''/''REPOSITORY_name''
  
Session->Protocol: SSH
+
Be sure to replace the italicized fields with appropriate values.
  
Session->Saved Sessions: Ce que vous voulez(par exemple tuxfamily)
+
After that, right-click on a file or folder and select the TortoiseSVN menu. To place files on your server, then select 'Commit' from the TortoiseSVN menu. To update the files on your PC, select 'Update' from the TortoiseSVN menu.
  
SSH->Prefered SSH Protocol version: 2
+
===Configuring Eclipse ===
  
SSH->Auth->Private Key file for auth: entrer l'emplacement et le nom de votre fichier ou est stocke votre cle privé.
+
Now, Eclipse has native SVN support so you don't need to download the Subversion plugin anymore.
 +
When Eclipse asks for a SVN repository, provide the following line :  
 +
svn+ssh://YOURUSER@svn.tuxfamily.org/svnroot/YOURGROUP/YOURREPOSITORY
  
 +
== Using SSH ==
  
Dans le menu Session, cliquer sur "Save" afin d'enregistrer la configuration.
+
It is possible to upload your SSH public key on your panel. That way, you won't have to enter your password for every operation made on the Subversion server. Then, all you have to do is to launch your ssh session - or configure Putty if you're using Windows, and you'll just have to enter all the commands in the same shell.
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 ===
+
To figure out how to precisely do it, read [[User/En#SSH_access|this page]]
  
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)
+
== Collaborative developements, writing permissions ==
Entrer l'adresse :
+
All users that are in your group will be able to commit on the SVN. If you want to work with your friend on your code (and you should do so :P ), they will have to register on TuxFamily and you will have to add them in your group through the panel.
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.
+
If one of your co-workers report the following error :
 
 
=== 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!
 
 
 
 
 
==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.
 
 
 
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 :
 
 
  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
  
= Remarques diverses =
+
make sure that he is in your group.
*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.
+
 
 +
= Tricks and Tips =
 +
*You should only commit things that compile correctly to make sure that the Trunk can be tested at any time by your users
  
*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).
+
*You have to choose the files you want to keep under the revision tracking system. It is not necessary to commit the temporary files of your text editor or compiled code. You can use the svn:ignore function as said here : http://svnbook.red-bean.com/nightly/en/svn-book.html#svn.advanced.props
  
*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 ...
+
*Please don't choose a too generic name such as 'svn' or 'subversion'. If you can't think of a descriptive name for your repository, then simply use your project's name :)
  
= Liens utiles =
+
= Useful links =
*http://svnbook.red-bean.com
+
*http://www.pushok.com/soft_svn_vscvs.php (Why Subversion instead of CVS?)
*http://www.pushok.com/soft_svn_vscvs.php (pourquoi subversion plutôt que cvs ? )
+
*http://www.abbeyworkshop.com/howto/misc/svn01/ (Getting Started with Subversion)
*http://subversion.tigris.org (site de référence)
+
*http://www.fylrr.com/archives.php?doc=svn-refcard.pdf (Quick Reference Card)
*https://svnhost.gi.polymtl.ca/utilisationSVN.html (idem en Franćais)
+
*http://svnbook.red-bean.com (Home of the "Version Control with Subversion" book)
*http://svnbook.red-bean.com/en/1.1/index.html (le SVNbook)
+
*http://subversion.tigris.org (Subversion's Home)
*http://www.cs.put.poznan.pl/csobaniec/Papers/svn-refcard.pdf (référence)
 
*http://www.abbeyworkshop.com/howto/misc/svn01/ (résumé du SVNBook)
 
*https://forge.ipsl.jussieu.fr/docipsl/wiki (présentation de SVN)
 

Latest revision as of 11:32, 12 April 2014

SVN Repository



Description

Subversion was created to replace CVS For more informations about SVN, please take a look at its wikipedia writeup.

In addition, you might also want to consider GIT.

Requirements

Creating the SVN repository

  • Go on the control panel
  • Select the project where you want to add a SVN repository
  • Choose the name of your repository
  • Validate

creation tips

  • Don't choose a too generic name
  • Fill the description field to avoid problems with the moderation team ;)

Moderation

Your repository will be subject to moderation, see here

How to administer (panel)

On the panel you can choose if you want the repository to be public. By accepting it, you allow a read-only anonymous login on the repository and you allow viewing it from the svnweb.

Configuration

How to manage group rights

This object can be shared with your group using the ACL

How to delete

  • Log into the panel
  • click on the group corresponding to your project
  • click on your SVN repository
  • click on delete

Usage

So, you've chosen to be hosted by TuxFamily, that's good. You chose a subversion repository, that's great ! We're going to teach you how to use it.

Note: because TuxFamily-hosted SVN repositories require SSH access, please review the note on SSH Access first.

Basic Operations

Check out

So, you want to have a basic use of your SVN repository. First, perform a checkout of the repository

svn co svn+ssh://YOURUSER@svn.tuxfamily.org/svnroot/PROJECT/REPO_NAME

(Of course, replace YOURUSER by your user name on the panel, PROJECT by the project owning the repository names REPO_NAME)

Warning, your password may be asked several times. This is not a bug, it is caused by SVN which uses several connections, so you have to enter several times your password, or you can use a SSH key (see below)

To test your access to the SVN referential, you can try something like this :

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

Yeah, it's allright ! The folder ##folder## has been created. Of course, it's empty, because your referential doesn't include any file.

Creating the base layout

Even though it's not an obligation, you should arrange your referential like this :

SVNROOT
|
|_ branches
|_ tags
|_ trunk

This will help you during the evolution of your project : the folder trunk will always include the last development version, tags will only be here to contain version notes (you should create a tag for each release, it will be easier for the users to know which code is associated to a version) and branches will allow you to add features which are too unstable to be present in the trunk.

First Import

If you have no files yet to put under subversion, you can simply create the layout :

cd /tmp
mkdir myproject
cd myproject && mkdir trunk && mkdir branches && mkdir tags
svn import . svn+ssh://USERNAME@svn.tuxfamily.org/svnroot/GROUP/REPOSITORY -m "Initial import description."

The import will recursively copy the content of the myproject folder directly in the repository.

If you already have files for this project, you just have to do the same thing, but after you have copied your files into the trunk folder.

Once it's done, you'll have to perform a checkout of the repository.

svn co svn+ssh://USER@svn.tuxfamily.org/svnroot/GROUP/REPOSITORY afolder

afolder is the folder you want to work with. If all the files are present, you can delete the directory from which you made the import.

Add/delete files, update of the repository

Add a file

Let's enter our folder

cd myfolder

And create a file named ##test##

touch test

To add it to the repository, just type

svn add test

If you want to upload all on the repository, type

svn ci

more serious: svn ci --message "commit message that will appear in the changelog."

Adding a folder is exactly the same:

svn add directory

then:

svn ci

Delete a file

To delete a file on the repository, just type:

svn rm mybogofile

and send your modifiactions to the server

svn ci


Update the repository

If several people work on the repository, it can be helpful to update your SVN repository. to do this, you just have to type this command at the repository root

svn up

Using Subversion in anonymous mode

It is possible to use Subversion without logging in . However, you won't be allowed to write on the repository (adding, editing or removing files). To perform a checkout, type:

svn co svn://svn.tuxfamily.org/svnroot/PROJECT/REPOSITORY

You can also update the repository each time the developpers update the code with

svn up

Warning, anonymous mode is available only if your repository is set in public mode (default). Of course, you won't be able to commit in annonymous mode.

Using the web interface

You can list the repositories using http://svn.tuxfamily.org
URLs looks like: http://svn.tuxfamily.org/group/repository/ ( http://svn.tuxfamily.org/vhffs4/vhffs/ for example)

If you prefer WebSVN, it is available at http://websvn.tuxfamily.org.

Using CIA

CIA is a commits system, visit the website for more informaton. to enable support of CIA on your TuxFamily repository, create a user account on their website. Then, create a project, name it as you want, in the configuration part you should see a "repository" part, click on it. Then, you have to check the box "Connect to a public Subversion repository" and to fill the rest of the form :

Repository URL: svn://svn.tuxfamily.org/svnroot/your_group/your_repository

Check that the "polling" box is checked. Please do not change the 15 minutes delay to keep the number of queries minimal.

How to keep in touch with your repository

It is possible to have regular feedback from your repository. You just have to use WebSVN's RSS feed. For example, to have the RSS feed for the REPO repository in the group GROUP, you would use the following URL :

http://websvn.tuxfamily.org/rss.php?repname=REPO+%28GROUP%29&path=%2F&rev=0&sc=0&isdir=1

Using a graphical interface

Some may prefer to work graphically, you have the choice under GNU/Linux : NautilusSvn for Nautilus, SubClipse for eclipse, eSVN, KdeSvn [screenshots] for konqueror, rapidsvn. Use your preferred packet manager (urpmi, yum, apt-get, emerge...) to install it !

eSVN

If you are not command-line tools compliant, you can use a graphical tool such as eSVN or the [Eclipse] suite.

Maybe one day, there will be a tortoise SVN for GNU/Linux ?

TortoiseSVN

Windows only. You can download Tortoise SVN from the TortoiseSVN website.

Please review the FAQ note on SSH for Windows-based SVN users and consult the TortoiseSVN FAQ on how to use TortoiseSVN with SSH.

Configuring TortoiseSVN

To start your SVN repository, create a directory on your PC for the project files, then right-click on that folder and select TortoiseSVN->Export... The URL you specify should be of the form:

svn+ssh://tuxfamily_LOGIN@Name_of_PuTTY_saved_session/svnroot/GROUP_name/REPOSITORY_name

Be sure to replace the italicized fields with appropriate values.

After that, right-click on a file or folder and select the TortoiseSVN menu. To place files on your server, then select 'Commit' from the TortoiseSVN menu. To update the files on your PC, select 'Update' from the TortoiseSVN menu.

Configuring Eclipse

Now, Eclipse has native SVN support so you don't need to download the Subversion plugin anymore. When Eclipse asks for a SVN repository, provide the following line :

svn+ssh://YOURUSER@svn.tuxfamily.org/svnroot/YOURGROUP/YOURREPOSITORY

Using SSH

It is possible to upload your SSH public key on your panel. That way, you won't have to enter your password for every operation made on the Subversion server. Then, all you have to do is to launch your ssh session - or configure Putty if you're using Windows, and you'll just have to enter all the commands in the same shell.

To figure out how to precisely do it, read this page

Collaborative developements, writing permissions

All users that are in your group will be able to commit on the SVN. If you want to work with your friend on your code (and you should do so :P ), they will have to register on TuxFamily and you will have to add them in your group through the panel.

If one of your co-workers report the following error :

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

make sure that he is in your group.

Tricks and Tips

  • You should only commit things that compile correctly to make sure that the Trunk can be tested at any time by your users
  • Please don't choose a too generic name such as 'svn' or 'subversion'. If you can't think of a descriptive name for your repository, then simply use your project's name :)

Useful links