Généralités

Subversion (en abrégé svn) est un système de gestion de versions, distribué sous licence Apache et BSD. Il a été conçu pour remplacer CVS. Ses auteurs s'appuient volontairement sur les mêmes concepts (notamment sur le principe du dépôt centralisé et unique). Le 14 février 2010, SVN est devenu officiellement un projet de la Fondation Apache, prenant le nom d'Apache Subversion.

Obtenir de l'information

man svn
man svnadmin
svn help <option>

Installation serveur Subversion

Configuration

Configuration générale

à compléter avec fichiers de configurations réels.

Emplacement	Fonction
/etc/…	blabla

Configuration spécifique

Utilisation habituelle

ajouter svn mv, cp, status, revert, switch, mkdir, add, list

Recuperation d'une ancienne version d'un fichier

Avec svn log, repérer le numéro de révision du fichier qu'on souhaite restaurer à une révision précédente.

cd <emplacement_fichier_a_restaurer>
svn update -r <num_revision> <nomfichier>

Récupération d'un dossier supprimé sous svn

Méthode pour récupérer un dossier malencontreusement supprimé dans une arborescence svn même après avoir réalisé un commit. Commencer par déceler la révision à laquelle le dossier existait à l'aide de la commande svn log et des commentaires écrit lors des commits.

Récupération par copie direct sur le serveur du dossier “Plateforme” présent dans la révision 180 et le copier au même endroit, là ou il a été supprimé.

svn cp -m"recup dossier Plateforme" -r197 svn://localhost/project/Center/Plateforme/ svn://localhost/project/Center/Plateforme/

Résolution de conflit

Lors de conflit sur un fichier nommé desc.txt on dispose de 4 fichiers.

desc.txt
desc.txt.mine
desc.txt.r200
desc.txt.r250

Le fichier desc.txt est le fichier avec les modifications automatique de svn. Le merge automatique de svn sur les lignes qui sont en conflits. Le .mine correspond au fichier qu'on avait en local. Le .r200, le fichier correspondant à la révision 200. Le .r250, le fichier correspondant à la révision 250.

Corriger le problème dans le fichier desc.txt à l'endroit du conflit positionné entre les chevrons («« »»>). Un checkin à ce stade ne fonctionne pas parce que le fichier est noté “C” car est marqué “en conflit”.

Pour voir l'état “C”.

svn status

Pour enlever ce marquage entrer la commande suivante.

svn resolved desc.txt

Les fichiers mentionnés plus haut (.mine, .r200 et .r250) sont automatiquement supprimés et le fichier passe à l'état modifié.

On peut checkiner à présent comme d'habitude.

svn ci -m"correction du conflit" desc.txt

Export

Export sans informations de gestion de version.

svn export svn://localhost

Import

Import de données non versionnées dans une base svn.

svn import -m"import initial" svn://localhost

Permet de repartir sur une base à révision 1 après un export.