Ressources pour développeur web

Théme de la semaine : CODEX CLI

SVN / Subversion : le guide complet pour bien débuter

Temps de lecture estimé : 10 minutes
Accueil Méthodologie SVN / Subversion : le guide complet pour bien débuter

Vous avez déjà écrasé un fichier important ou perdu une modification qui fonctionnait parfaitement quelques heures plus tôt ? SVN, aussi appelé Subversion, a justement été conçu pour éviter ce genre de mésaventure. Ce système de gestion de versions permet de suivre chaque changement effectué sur un projet, de revenir en arrière en quelques secondes et de travailler plus sereinement, seul ou en équipe.

Dans ce tutoriel complet sur SVN, vous découvrirez comment installer Subversion, créer et gérer un dépôt, enregistrer vos modifications, restaurer d’anciennes versions et collaborer efficacement avec d’autres développeurs. Le tout à travers des explications simples, des exemples concrets et une approche pensée pour les débutants.

  • Éviter les pertes de travail grâce à un historique complet capable de restaurer rapidement une version fonctionnelle de votre projet.
  • Comprendre comment collaborer efficacement sur un même code sans écraser les modifications des autres développeurs.
  • Adopter les bonnes pratiques utilisées en entreprise pour suivre, organiser et sécuriser l’évolution de vos projets web.

SVN (Subversion) est l’un des systèmes de gestion de versions les plus utilisés pour suivre l’évolution d’un projet informatique et sécuriser son travail au quotidien. Que vous développiez un site web, une application ou un simple projet personnel, SVN vous permet d’enregistrer chaque modification, de revenir en arrière en cas d’erreur et de collaborer plus facilement avec d’autres développeurs.

C’est précisément pour résoudre ce problème qu’existent les systèmes de gestion de versions. Et pas besoin d’être un expert : nous allons avancer étape par étape, comme lors d’une formation.

Qu’est-ce que SVN ?

SVN, ou Apache Subversion, est un logiciel de gestion de versions.

  • Son rôle consiste à enregistrer l’historique des modifications effectuées sur un projet.

Imaginez un dossier contenant votre site web. À chaque fois que vous modifiez un fichier HTML, CSS, JavaScript ou PHP, SVN est capable de mémoriser :

  • qui a effectué la modification ;
  • quand elle a été réalisée ;
  • quels fichiers ont été modifiés ;
  • ce qui a changé exactement.

En quelque sorte, SVN agit comme une machine à remonter le temps pour vos fichiers.

SVN - Subversion

Si une erreur survient, vous pouvez revenir à une version précédente du projet en quelques secondes.

Pourquoi utiliser SVN ?

Prenons un exemple concret : Vous développez un site internet pendant plusieurs semaines.

Au bout d’un mois, vous décidez de modifier une fonctionnalité importante. Malheureusement, cette modification provoque des bugs.

  • Sans SVN, vous devrez retrouver manuellement les anciens fichiers.
  • Avec SVN, il suffit de restaurer une ancienne révision.

Quelques clics et votre projet revient dans l’état où il fonctionnait correctement.

SVN apporte également d’autres avantages :

  • sauvegarde de l’historique ;
  • travail en équipe simplifié ;
  • suivi des modifications ;
  • restauration des anciennes versions ;
  • centralisation du projet.

Comprendre le fonctionnement de SVN

Avant d’utiliser SVN, il faut comprendre sa philosophie. Contrairement à Git, SVN repose sur une architecture centralisée.

Cela signifie qu’il existe un serveur principal contenant la version officielle du projet.

Tous les développeurs se connectent à ce serveur.

Le schéma ressemble à ceci :

Serveur SVN
      |
-------------------
|        |        |
Dev 1   Dev 2   Dev 3

Chaque développeur récupère une copie locale du projet. Lorsqu’il effectue des modifications, il les envoie ensuite vers le serveur.

Cette opération est appelée un commit (comme avec Git).

SVN ou GIT ?

SVN est une alternative à Git, mais aujourd’hui Git est devenu beaucoup plus populaire.

SVN (Subversion) et Git sont tous les deux des systèmes de gestion de versions. Ils permettent de :

  • suivre les modifications du code ;
  • revenir à une version précédente ;
  • travailler à plusieurs sur un même projet ;
  • gérer des branches et des fusions.

La principale différence est leur architecture.

SVN : système centralisé

Avec SVN, il existe un serveur central qui contient le dépôt complet.

Chaque développeur récupère uniquement une copie de travail. L’historique complet reste sur le serveur.

Avantages :

  • simple à comprendre pour les débutants
  • gestion des droits souvent plus facile
  • pratique dans certaines entreprises historiques

Inconvénients :

  • nécessite généralement une connexion au serveur
  • branches et fusions moins souples
  • moins adapté aux workflows modernes

Git : système distribué

Avec Git, chaque développeur possède une copie complète du dépôt et de son historique.

Développeur A <----> GitHub/GitLab
       ^
       |
Développeur B

Le serveur (GitHub, GitLab, Bitbucket, etc.) sert surtout à synchroniser les dépôts.

Avantages :

  • très rapide
  • fonctionne hors ligne
  • branches extrêmement légères
  • idéal pour le travail collaboratif moderne
  • adopté par la majorité des projets open source

Inconvénients :

  • courbe d’apprentissage un peu plus élevée
  • certaines commandes peuvent sembler complexes au début

Quelques équivalences SVN ↔ Git

SVNGit
svn checkoutgit clone
svn updategit pull
svn commitgit commit + git push
svn addgit add
svn loggit log

Faut-il encore apprendre SVN ?

Si vous travaillez sur des projets récents, je vous conseille clairement d’apprendre Git en priorité. Vous le retrouverez partout : GitHub, GitLab, DevOps, CI/CD, projets open source, etc.

En revanche, SVN reste présent dans certaines entreprises, administrations ou anciens projets qui ont été créés avant la démocratisation de Git.

Pour un développeur web, maîtriser Git est aujourd’hui quasiment indispensable, tandis que connaître SVN est surtout utile pour maintenir ou reprendre des projets existants.

Git, Jujutsu et SVN : lequel choisir ?

Aujourd’hui, trois approches coexistent dans le monde de la gestion de versions : SVN, Git et Jujutsu.

CritèreSVNGitJujutsu (JJ)
ArchitectureCentraliséeDistribuéeDistribuée
PopularitéEn baisseTrès élevéeÉmergente
Travail hors ligneLimitéOuiOui
Gestion des branchesCorrecteExcellenteExcellente
Facilité d’apprentissageFacileMoyenneMoyenne
Historique réécrivableLimitéOuiOui, simplifié
Utilisation en entrepriseEncore présenteStandard actuelTrès rare pour le moment

SVN reste apprécié pour sa simplicité et son fonctionnement centralisé. Dans une petite équipe ou sur un projet ancien, il peut encore parfaitement remplir son rôle. Cependant, son modèle commence à montrer ses limites lorsqu’il s’agit de gérer de nombreuses branches ou des développements complexes.

Git est devenu la référence mondiale. Il est utilisé par la plupart des entreprises, des développeurs indépendants et des projets open source. Sa puissance est impressionnante, mais certaines commandes comme rebasereset ou la gestion des conflits peuvent parfois intimider les débutants.

Jujutsu (souvent abrégé JJ) est un nouvel outil qui cherche à moderniser l’expérience de Git sans remplacer son écosystème. En pratique, Jujutsu peut fonctionner directement au-dessus d’un dépôt Git existant. Il simplifie de nombreuses opérations complexes, notamment la réécriture de l’historique, la gestion des branches et la résolution des conflits. Là où Git demande parfois plusieurs commandes délicates, Jujutsu propose souvent une approche plus intuitive et plus sûre.

Pour un nouveau projet, Git reste aujourd’hui le choix le plus logique grâce à son immense écosystème et à sa compatibilité universelle. Jujutsu est très prometteur et pourrait séduire les développeurs qui trouvent Git trop complexe, tandis que SVN demeure principalement utilisé pour la maintenance de projets historiques ou dans certaines infrastructures d’entreprise plus anciennes.

Pourquoi SVN reste indispensable pour WordPress.org ?

Même si Git est aujourd’hui l’outil de gestion de versions le plus utilisé par les développeurs, le dépôt officiel de plugins et de thèmes de WordPress s’appuie toujours sur SVN pour la publication des extensions WP.

Concrètement, vous pouvez développer votre plugin avec Git sur votre ordinateur ou sur GitHub, mais pour publier une nouvelle version sur WordPress.org, vous devrez obligatoirement envoyer vos fichiers vers le dépôt SVN fourni par WordPress.

Cette étape permet à WordPress.org de gérer les versions distribuées aux millions de sites qui utilisent son système de mise à jour automatique. Ainsi, tout développeur souhaitant diffuser son extension sur le répertoire officiel WordPress doit connaître au minimum les commandes SVN de base.

Les principaux termes à connaître

Avant d’aller plus loin, familiarisons-nous avec quelques mots essentiels.

Dépôt (Repository)

Le dépôt est l’endroit où SVN stocke l’ensemble du projet.

Il contient :

  • tous les fichiers ;
  • toutes les versions ;
  • tout l’historique.

On peut le considérer comme la bibliothèque centrale du projet.

Working Copy

La Working Copy est votre copie locale.

C’est sur cette version que vous travaillez quotidiennement.

Commit

Un commit permet d’envoyer vos modifications vers le serveur SVN.

  • Chaque commit crée une nouvelle version du projet.

Update

La commande Update récupère les dernières modifications présentes sur le serveur.

Révision

Chaque modification enregistrée reçoit un numéro.

Par exemple :

Révision 1
Révision 2
Révision 3
Révision 4

Ces numéros permettent de revenir facilement à un état précis du projet.

Installer SVN

Installation sous Windows

Le moyen le plus simple consiste à utiliser le logiciel TortoiseSVN.

Téléchargez la version correspondant à votre système puis lancez l’installation.

Une fois installé, SVN s’intègre directement dans l’explorateur Windows. Un clic droit sur un dossier permet alors d’accéder aux fonctionnalités SVN.

C’est particulièrement pratique pour les débutants.

Installation sous Linux

Sous Ubuntu ou Debian :

sudo apt update
sudo apt install subversion

Vérifiez ensuite l’installation :

svn --version

Si un numéro de version apparaît, tout est prêt.

Installation sous macOS

Avec Homebrew :

brew install subversion

Puis :

svn --version
SVN depuis un terminal macOS

Créer un dépôt SVN

Passons maintenant à la pratique.

Pour créer un dépôt local :

svnadmin create mon_depot

Cette commande génère toute la structure nécessaire.

Vous obtenez alors un dépôt vide prêt à accueillir votre projet.

Structure classique d’un dépôt

Dans le monde SVN, on utilise souvent une organisation standard :

Projet
│
├── trunk
├── branches
└── tags

Voyons à quoi servent ces dossiers.

  • trunk : Le dossier trunk contient la version principale du projet. C’est généralement ici que se déroule le développement.
  • branches : Les branches servent à développer des fonctionnalités sans impacter la version principale.
  • tags : Les tags permettent de figer certaines versions importantes.

Par exemple :

Version 1.0
Version 2.0
Version 3.0
SVN : Trunk, branche et tag

Importer un projet dans SVN

Supposons que vous possédiez déjà un site web qui aurait cette structure :

monsite
│
├── index.php
├── style.css
└── contact.php

Vous pouvez l’importer dans SVN :

svn import monsite file:///depot/trunk -m "Import initial"

Décomposons cette commande :

svn import

Importe les fichiers.

-m

Permet d’ajouter un message descriptif.

"Import initial"

Explique ce que contient cette première version. Toujours écrire un message clair est une excellente habitude.

Formation web et informatique - Alban Guillier - Formateur

Des formations informatique pour tous !

Débutant ou curieux ? Apprenez le développement web, le référencement, le webmarketing, la bureautique, à maîtriser vos appareils Apple et bien plus encore…

Formateur indépendant, professionnel du web depuis 2006, je vous accompagne pas à pas et en cours particulier, que vous soyez débutant ou que vous souhaitiez progresser. En visio, à votre rythme, et toujours avec pédagogie.

Découvrez mes formations Qui suis-je ?

Récupérer un projet SVN

Pour télécharger un projet existant :

svn checkout URL_DU_DEPOT

Ou plus simplement :

svn co URL_DU_DEPOT

Exemple :

svn checkout https://serveur.fr/projet/trunk

SVN télécharge alors tous les fichiers.

  • Vous obtenez votre Working Copy.

Ajouter de nouveaux fichiers

Imaginons que vous créiez un nouveau fichier :

blog.php

SVN ne le surveille pas automatiquement.

Vous devez l’ajouter :

svn add blog.php

Le fichier sera pris en compte lors du prochain commit.

Vérifier les modifications

Avant d’envoyer vos changements, vous pouvez demander à SVN ce qui a été modifié.

svn status

Exemple :

M index.php
A blog.php

Signification :

M = Modified
A = Added

Cette commande devient rapidement indispensable.

Voir les différences

Vous souhaitez savoir exactement ce qui a changé ?

Utilisez :

svn diff

Exemple :

- Bonjour
+ Bonjour à tous

SVN affiche ligne par ligne les modifications effectuées.

C’est extrêmement pratique avant un commit.

Enregistrer ses modifications

Une fois satisfait de votre travail :

svn commit -m "Ajout du formulaire de contact"

SVN envoie alors les changements vers le serveur.

Une nouvelle révision est créée.

Par exemple :

Révision 57

Le projet dispose désormais d’un nouvel historique.

Récupérer les dernières modifications

Si plusieurs développeurs travaillent ensemble, vous devez régulièrement mettre à jour votre copie locale.

svn update

Cette commande télécharge les dernières versions présentes sur le serveur.

  • C’est une opération à effectuer fréquemment.

Un peu comme consulter ses messages avant de répondre à une conversation déjà en cours.

Gérer les conflits

Les conflits font partie de la vie de tous les développeurs.

Imaginons que :

  • Paul modifie index.php ;
  • Julie modifie la même ligne ;
  • les deux effectuent un commit.

SVN détecte alors un conflit.

Exemple :

<<<<<<< .mine
Bonjour tout le monde
=======
Bienvenue sur le site
>>>>>>> .r25

Pas de panique : SVN vous demande simplement quelle version conserver.

Vous pouvez :

  • choisir votre version ;
  • choisir la version distante ;
  • fusionner les deux.

Une fois le conflit résolu :

svn resolve --accept working index.php

Puis :

svn commit

Consulter l’historique

Pour voir tous les changements enregistrés :

svn log

Exemple :

r25 Alban
Ajout du formulaire

r24 Alban
Correction du menu

r23 Alban
Import initial

Vous obtenez ainsi une chronologie complète du projet.

Examiner une révision précise

Pour afficher le détail d’une révision :

svn log -r 25

Ou :

svn diff -r 24:25

Cela permet de comprendre précisément ce qui a changé entre deux versions.

Revenir en arrière

C’est probablement l’une des fonctionnalités les plus appréciées. Vous avez introduit un bug catastrophique ? SVN peut revenir à une ancienne version.

Visualiser une ancienne révision :

svn update -r 20

Restaurer une modification :

svn merge -c -25 .

Cette commande annule les changements introduits par la révision 25.

Créer une branche

Les branches permettent de tester des idées sans casser le projet principal.

Création :

svn copy \
https://serveur/projet/trunk \
https://serveur/projet/branches/test \
-m "Création branche test"

Vous disposez maintenant d’un espace isolé pour expérimenter.

Pratique lorsque l’on tente une grosse refonte.

Utiliser les tags

Les tags servent à marquer des versions importantes.

Par exemple :

svn copy \
https://serveur/projet/trunk \
https://serveur/projet/tags/v1.0 \
-m "Version 1.0"

Vous conservez ainsi une photographie exacte de votre projet au moment de sa publication.

Les bonnes pratiques avec SVN

Au fil du temps, certains réflexes deviennent précieux.

  • Effectuez des commits réguliers.
  • Évitez les messages vagues comme :
Modification
Correction
Test

Préférez :

Correction du calcul de TVA
Ajout du formulaire d'inscription
Optimisation du menu mobile

Pensez également à lancer :

svn update

avant de commencer votre journée de travail.

Cela réduit fortement les risques de conflits.

Enfin, n’attendez pas trois semaines avant de réaliser un commit.

Plus les modifications sont petites, plus elles sont faciles à comprendre et à corriger.

Cas concret : gérer un site PHP avec SVN

Imaginons que vous développiez un site web.

Premier jour :

svn add index.php
svn add style.css
svn commit -m "Création du site"

Deuxième jour :

svn add contact.php
svn commit -m "Ajout page contact"

Troisième jour :

svn add admin.php
svn commit -m "Ajout administration"

Trois mois plus tard, un problème apparaît dans l’administration.

Grâce à SVN, vous pouvez retrouver immédiatement le moment où cette fonctionnalité a été ajoutée et analyser les modifications réalisées.

Sans système de gestion de versions, cette enquête pourrait prendre plusieurs heures.


SVN est-il encore utilisé aujourd’hui ?

Oui. Même si Git est devenu très populaire, SVN reste largement utilisé dans certaines entreprises, administrations et projets historiques. De nombreux développeurs travaillent encore quotidiennement avec Subversion.

Faut-il un serveur pour utiliser SVN ?

Pas forcément. Vous pouvez créer un dépôt SVN local sur votre ordinateur pour apprendre ou gérer un projet personnel. En revanche, un serveur devient utile lorsque plusieurs personnes doivent collaborer sur le même projet.

SVN est-il difficile à apprendre pour un débutant ?

Non. SVN est souvent considéré comme plus simple à comprendre que d’autres systèmes de gestion de versions. Ses concepts sont relativement intuitifs et permettent d’acquérir rapidement de bonnes habitudes de travail.


Apprendre SVN est un excellent moyen de découvrir l’univers de la gestion de versions. Même si Git occupe aujourd’hui une place dominante dans de nombreux projets, Subversion reste présent dans de nombreuses entreprises et continue de rendre d’immenses services au quotidien.

Au-delà des commandes, le véritable intérêt de SVN est ailleurs : il vous apprend à travailler de manière méthodique, à conserver un historique propre et à sécuriser votre travail. Une fois que vous aurez pris l’habitude d’utiliser un gestionnaire de versions, vous aurez probablement du mal à revenir en arrière.

Le meilleur conseil est donc très simple : installez SVN, créez un petit projet de test et commencez à expérimenter. Ajoutez des fichiers, modifiez-les, effectuez des commits, créez une branche, revenez à une ancienne révision. Plus vous pratiquerez, plus les mécanismes deviendront naturels.

Et qui sait ? Peut-être que votre prochain projet web, votre futur plugin WordPress ou même une application passera bientôt sous le contrôle rassurant d’un dépôt SVN.